请问这个算法那里有问题
来源:2-8 编程练习
qq_嘉航_0
2018-03-23 10:42:09
<?php
header('content-type:text/html;charset=utf-8');
function sum($var1,$var2){
$sum=0;
for($i=0;$i<$var2-$var1;++$i)
{
$sum+=$var1;
$var1++;
}
return $sum;
}
echo sum(1,10);
?>
1回答
imooc_澈
2018-03-23
您好,代码有两个问题:
1 按照你的思路,是想将传进去的第一个参数从自身开始,逐步加1,再跟前面的数相加,这样的话循环里面$i<=$var2-$var1才对,这样才不会漏掉最后那个数。
2 在循环中使用了$var1++,这会影响到循环中的判断条件,$var1不断自加,那么每循环一次,判断条件$i<$var2-$var1就会变小,导致循环总次数减少,结果自然不对。
修正代码如下,同学可以尝试一下
function sum($var1,$var2){
$sum=0;
$newVar1 = $var1;
for($i=0;$i<=$var2-$var1;++$i)
{
$sum+=$newVar1;
$newVar1++;
}
return $sum;
}
echo sum(1,100);
如果解决了你的问题,请采纳,祝学习愉快~
相似问题