【问题标题】:How to sum numbers with php using for loop?如何使用for循环将数字与php相加?
【发布时间】:2014-12-29 05:32:49
【问题描述】:

谁能帮我理解如何对数字求和?

例如,我想使用 for 循环来对从 1 到 10 的所有数字求和:

'1+2+3+4+5+6+7+8+9+10=?' 

【问题讨论】:

  • 到目前为止你尝试过什么?你被困在哪里了?

标签: php for-loop


【解决方案1】:

既然你特别说for循环:

<?php

$start = 1;
$end = 10;

$sum = 0;
for ($i = $start; $i <= $end; $i++) {
    $sum += $i;
}

echo "Sum from " . $start . " to " . $end . " = " . $sum;

【讨论】:

    【解决方案2】:

    是的,这很容易做到:

    array_sum(range(1, 10))
    

    $sequence = array(1,2,3,4,5,6,7,8,9,10);
    array_sum($sequence);
    

    【讨论】:

    • 严格来说,这并不能解决问题。 OP 要求一个 for 循环
    【解决方案3】:

    这样就可以了……你有很多选择可以做到这一点

    $a=0;
    for($i=0;$i==10;$i++)
    {
        $a=$a+$i;
    }
    echo 'Sum= ' . $a ;
    

    【讨论】:

    • ...或for ($i=1;$i==10;$i++),无需加零。
    【解决方案4】:

    不确定我是否理解这个问题,但是

    $sum = 0;
    
    for ($i = 1; $i <= 10; $i++) {
       $sum += $i;
    }
    
    echo 'The sum: ' . $sum;
    

    应该将 1 到 10 之间的数字相加到 $sum 变量中。

    【讨论】:

      【解决方案5】:

      试试这样:

      <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;
      
      
      ?>
      

      【讨论】:

        【解决方案6】:

        使 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);
                }
            }
            ?>
        

        【讨论】:

        • 请在您的答案中添加一些解释,以便其他人可以从中学习 - 为什么递归在这里以任何方式提供帮助?在这里使用递归没有,绝对没有好处
        【解决方案7】:
        <?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 ;
        ?>
        

        【讨论】:

          【解决方案8】:

          事实上,为此使用循环是效率最低的方法。这是一个等差数列,可以使用以下公式计算:

          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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-02-14
            • 1970-01-01
            • 1970-01-01
            • 2013-11-18
            • 1970-01-01
            • 2015-08-28
            • 2018-01-02
            相关资源
            最近更新 更多