【发布时间】:2014-12-29 05:32:49
【问题描述】:
谁能帮我理解如何对数字求和?
例如,我想使用 for 循环来对从 1 到 10 的所有数字求和:
'1+2+3+4+5+6+7+8+9+10=?'
【问题讨论】:
-
到目前为止你尝试过什么?你被困在哪里了?
谁能帮我理解如何对数字求和?
例如,我想使用 for 循环来对从 1 到 10 的所有数字求和:
'1+2+3+4+5+6+7+8+9+10=?'
【问题讨论】:
既然你特别说for循环:
<?php
$start = 1;
$end = 10;
$sum = 0;
for ($i = $start; $i <= $end; $i++) {
$sum += $i;
}
echo "Sum from " . $start . " to " . $end . " = " . $sum;
【讨论】:
是的,这很容易做到:
array_sum(range(1, 10))
或
$sequence = array(1,2,3,4,5,6,7,8,9,10);
array_sum($sequence);
【讨论】:
这样就可以了……你有很多选择可以做到这一点
$a=0;
for($i=0;$i==10;$i++)
{
$a=$a+$i;
}
echo 'Sum= ' . $a ;
【讨论】:
for ($i=1;$i==10;$i++),无需加零。
不确定我是否理解这个问题,但是
$sum = 0;
for ($i = 1; $i <= 10; $i++) {
$sum += $i;
}
echo 'The sum: ' . $sum;
应该将 1 到 10 之间的数字相加到 $sum 变量中。
【讨论】:
试试这样:
<form method="post">
Start:<input type="text" name="a">
End: :<input type="text" name="b">
<input type="submit" >
</form>
<?php
$start = $_POST['a'];
$end = $_POST['b'];
$sum = 0;
for ($i = $start; $i <= $end; $i++) {
$sum += $i;
}
echo "<h2>Sum from " . $start . " to " . $end . " = " . $sum;
?>
【讨论】:
使 1+2+3+4+5 = ?通过递归函数
<?php
$n=1;
echo Recursion($n);
function Recursion($n){
if ($n <=5){
if($n<5){
echo "$n+";
}
else echo "$n=";
return $n+Recursion($n+1);
}
}
?>
【讨论】:
<?php
$array = array(1,2,3,4,5,6,7,8,9,10);
$count = count($array);
$sum = 0;
for($i=0;$i<$count;$i++){
$sum += $array[$i];
}
echo $sum ;
?>
【讨论】:
事实上,为此使用循环是效率最低的方法。这是一个等差数列,可以使用以下公式计算:
S = n*(a1+an)/2
其中a1 是第一个元素,an 是最后一个元素,n 元素的数量。
// for 1..10 it would be:
$sum = 10*(1+10)/2;
// for 1..2000 it would be:
$sum = 2000*(1+2000)/2;
// u can use the same formula for other kinds of sequences for example:
// sum of even numbers from 2 until 10:
$sum = 5*(2+10)/2; // 5 elements, first is 2, last is 10
【讨论】: