请问这个算法那里有问题

来源: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);

如果解决了你的问题,请采纳,祝学习愉快~

0

0 学习 · 4928 问题

查看课程