【问题标题】:Php multiplication table for specified number指定数字的php乘法表
【发布时间】:2016-08-07 23:41:37
【问题描述】:

我的任务是创建一个脚本,该脚本将只为指定的数字输出乘法表。要创建常规乘法表,例如 10x10,我们会这样写:

echo "<table border=\"1\">";

        for ($r =0; $r < $rows; $r++){

            echo'<tr>';

            for ($c = 0; $c < $cols; $c++)
                echo '<td>' .$c*$r.'</td>';
           echo '</tr>'; // close tr tag here

        }

  echo"</table>";

但我应该收到的输出,例如数字“3”,应该如下所示:

|1 x 1 = 1|1 x 2 = 2|1 x 3 = 3|
| ------- | ------- | ------- |
|2 x 1 = 2|2 x 2 = 4|2 x 3 = 6|
|3 x 1 = 3|3 x 2 = 6|3 x 3 = 9|

有人知道如何使用 php(while 和/或 for)循环来回显这个吗?

【问题讨论】:

  • 你不能把它加到echo里面吗?一个简单的连接就可以了

标签: php loops for-loop while-loop


【解决方案1】:

听起来您想输出计算的文本以及结果,例如1 x 3 = 3。您的输出中缺少这一点。

另外,你需要在1 而不是0 开始你的for 循环,否则你会得到0 x 0 = 0,我认为你不想要。您可以通过在 for 循环的条件下使用 &lt;= 而不是 &lt; 来补偿迭代损失,因此您仍然可以获得 3 次迭代(在此示例中)。

试试这个:

echo '<table border="1">';
for ($r = 1; $r <= $rows; $r++) {
    echo '<tr>';
    for ($c = 1; $c <= $cols; $c++) {
        echo sprintf('<td>%d x %d = %d</td>', $r, $c, $c * $r);
    }
    echo '</tr>'; // close tr tag here
}
echo '</table>';

您的预期输出似乎也表明第一行应该是标题。这样做对我来说似乎很奇怪,但如果 的情况,你需要这样做:

$cellType = ($r === 1) ? 'th' : 'td'; // use <th> for the first row, otherwise <td>
echo sprintf('<%s>%d x %d = %d</%s>', $cellType, $r, $c, $c * $r, $cellType);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    相关资源
    最近更新 更多