我试图总结从0到200的所有偶数,我找到了2种可能的工作方式,但第三种方法(最有效的方法)让我头疼。这是我到目前为止所做的:
第一种方法:
$total = 0;
$number = 0;
while ($number < 200)
{
if ($number % 2 == 0)
{
$total = $total + $number;
}
$number++;
}
echo $total;
第二种方法:
$total = 0;
for($number = 0; $number < 200; $number+=2)
{
$total += $number;
}
echo $total;
第三种方法(不能让它起作用)
echo array_sum(range(1,200,2));
我应该如何更改我的上一个方法以使其按预期工作?
编辑:似乎所有方法都不起作用:输出应为10100,但前两种方法为9900,第三种方法为10000.
答案 0 :(得分:2)
从0开始但是1
echo array_sum(range(0,200,2));
结果10100
答案 1 :(得分:2)
您需要使用
2015/06/15 17:15:17:215 [ERROR] MyClass Error: Error #3013
at MyClass/openCsv()
...
或
echo array_sum(range(0,198,2));
因为上述函数会将值汇总到
echo array_sum(range(0,199,2));
,而在200
和while
循环中,只有for
才会计算到198
定义强>
$number < 200
答案 2 :(得分:1)
在您尝试的两种方法中,您的条件是该数字不应超过200.我在此处也使用了相同的方案。
echo array_sum(range(0,199,2));
预期输出为9900。
但正确答案是10100。
要获得10100,我们需要用200替换199。
公式(数学)
2 + 4 + 6 + 8 + 10 + .............. + 198 + 200 = 2(1 + 2 + 3 + 4 + 5 + ..... + 100)
= 2((100 * 101)/ 2)(公式:n(n + 1)/ 2; n是最后一项)
= 100 * 101
= 10100