求一个简单的问题,在php中,用for循环求下列问题
初始值是1/2。然后求1/2+2/3+3/4+4/5+……的算法。到10就可以了。主要是想明白这个算法是怎么写的。另外问一句,最后输出的时候怎么让它输出为分数。谢谢。...
初始值是1/2。然后求1/2+2/3+3/4+4/5+……的算法。到10就可以了。主要是想明白这个算法是怎么写的。另外问一句,最后输出的时候怎么让它输出为分数。谢谢。
展开
1个回答
展开全部
<?php
//php是不能直接输出分数的,直接输出的话就如下
$sum=0;
for($i=1;$i<=10;$i++){
$sum+=($i/($i+1));
}
echo $sum;
echo "<br>";
//如果需求分子输出,则自己模拟整个运算过程
$son=0;//分子
$mum=1;//分母
//求分子
for($i=2;$i<=11;$i++){
$mum*=$i;
}
//求分母
for($i=1;$i<=10;$i++){
$son+=$i*$mum/($i+1);
}
//辗转求余发求分子分母的最大公约数
if($son>$mum){
$b=$son;
$r=$mum;
}else{
$b=$mum;
$r=$son;
}
while($r){
$a=$b;
$b=$r;
$r=$a%$b;
}//$b就是最大公约数
echo $son/$b."/".$mum/$b;
?>
//php是不能直接输出分数的,直接输出的话就如下
$sum=0;
for($i=1;$i<=10;$i++){
$sum+=($i/($i+1));
}
echo $sum;
echo "<br>";
//如果需求分子输出,则自己模拟整个运算过程
$son=0;//分子
$mum=1;//分母
//求分子
for($i=2;$i<=11;$i++){
$mum*=$i;
}
//求分母
for($i=1;$i<=10;$i++){
$son+=$i*$mum/($i+1);
}
//辗转求余发求分子分母的最大公约数
if($son>$mum){
$b=$son;
$r=$mum;
}else{
$b=$mum;
$r=$son;
}
while($r){
$a=$b;
$b=$r;
$r=$a%$b;
}//$b就是最大公约数
echo $son/$b."/".$mum/$b;
?>
更多追问追答
追问
$sum+=($i/($i+1));。请问这个中间的“=”如何解释,不太明白这个等号起到的作用呢。
追答
$a+=$b;
相当于
$a=$a+$b;
是累加的意思。
类似的还有 -= *= /= %= 等等
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询