1

我正在为期末考试而学习,我遇到了这个问题:

编写一个php脚本从输入框中读取一个正整数n并计算1+2+--n的值...

我已经尝试了很长时间并进行了足够的研究,但到目前为止我还没有完成这项工作:

<html>
  <head>
    <title>
     </title>
 </head>
 <body>
  <form action="inputnum.php" method="post" >
   num:<input type="text" name="num" size ="5"/>
  <input type = "submit" value = "Submit Order" />

       <?php
        $num=$_POST["num"];
        if ($num==0)$num=="";
         for($i=0; $i<=$num; $i++){
         }
            echo"($num+$i)";
       ?>

  </form>

谁能帮我吗?提前致谢!

4

5 回答 5

3
<?php
  $num   = (int)$_POST["num"];
  $total = 0;

  for ($i=0; $i <= $num; $i++) {
     $total = $total + $i;
  }

  echo $total;
?>

如果您的代码期望处理一个数字,最好通过(int)发布的值进行显式转换

于 2012-04-18T10:40:07.470 回答
2

你混合了括号,你也混合===. 无论如何,存在一种计算此类总和的更快方法,即n * (n + 1) / 2

于 2012-04-18T10:43:31.183 回答
0
<?php
    $num=$_POST["num"];
    if ($num==0)$num="";
    else
    {
     for($i=0; $i<=$num; $i++){
       $sum=$sum+$i;
       }
    }
    echo $sum;
   ?>

更准确地说,在计算总和之前,您必须首先检查是否设置了提交按钮。

于 2012-04-18T10:41:26.900 回答
0

首先,这if ($num==0)$num=="";是错误的。$num="";应该是这样。无论如何,这会破坏你的if陈述。

我建议将for-loop 放在if-statement 中并将条件更改为$num>0.

让我们$i从 1 开始,而不是 0。

于 2012-04-18T10:43:39.023 回答
0

你可以使用这样的东西(未经测试,这里没有可用的 PHP 解释器):

<html>
    <head>
        <title></title>
    </head>
    <body>

        <?php

            $num = (int)$_POST['num'];

            if(!$num) {

        ?>

        <form action="inputnum.php" method="post" >

            num: <input type="text" name="num" size ="5"/>
            <input type = "submit" value = "Submit Order" />

        </form>

        <?php

            } else {

                $total = 0;
                for($i=1; $i<=$num; $i++){

                    $total = $total + $i;

                }
                echo $num;

            }

        ?>

    </body>
</html>
于 2012-04-18T10:43:53.763 回答