用php实现九九乘法表是一个面试遇到的实操题,今天把它来总结下。对老手来说这算不得什么,很容易。但对我这样的新手来讲,通过不同的方法来写还挺锻炼逻辑思维的。
- <?php
- //一、使用for循环打印九九乘法表:
- for($j=1; $j<=9; $j++) {
- for($i=1; $i<=$j; $i++) {
- echo "{$i}x{$j}=".($i*$j)." ";
- }
- echo "<br />";
- }
- //二、使用while循环打印九九乘法表
- $j = 1;
- while($j<=9){
- $i = 1;
- while($i<=$j){
- echo "{$i}x{$j}=".($i*$j)." ";
- $i++;
- }
- echo "<br />";
- $j++;
- }
- //三、使用do while循环打印九九乘法表
- $j = 1;
- do {
- $i = 1;
- do {
- echo "{$i}x{$j}=".($i*$j)." ";
- $i++;
- } while($i<=$j);
- echo "<br />";
- $j++;
- } while($j<=9);
- //下面使用for循环以表格形式输出九九乘法表
- //角度一:(最普通的常规写法)
- echo "<table border='1'>";
- for($j=1;$j<=9;$j++){
- echo "<tr>";
- for($i=1;$i<=$j;$i++){
- echo "<td>{$i}*{$j}=".($i*$j)."</td>";
- }
- echo "</tr>";
- }
- echo "</table>";
- //角度二:(与常规写法成X轴对称)
- echo "<table border='1'>";
- for($j=9;$j>=1;$j--){
- echo "<tr>";
- for($i=1;$i<=$j;$i++){
- echo "<td>{$i}*{$j}=".($i*$j)."</td>";
- }
- echo "</tr>";
- }
- echo "</table>";
- //角度三:(与角度二成Y轴对称)
- echo "<table border='1'>";
- for($j=9;$j>=1;$j--){
- echo "<tr>";
- for($z=0;$z<9-$j;$z++){
- echo "<td> </td>";
- }
- for($i=1;$i<=$j;$i++){
- echo "<td>{$i}*{$j}=".($i*$j)."</td>";
- }
- echo "</tr>";
- }
- echo "</table>";
- //角度四:(与常规写法成Y轴对称)
- echo "<table border='1'>";
- for($j=1;$j<=9;$j++){
- echo "<tr>";
- for($z=0;$z<9-$j;$z++){
- echo "<td> </td>";
- }
- for($i=$j;$i>=1;$i--){
- echo "<td>{$i}*{$j}=".($i*$j)."</td>";
- }
- echo "</tr>";
- }
- echo "</table>";
- //递归写法
- // @param int : $i 个数
- // @param int : $k 层数
- function rideNum($i=1, $k=1){
- if($i >= 10 || $k >= 10){exit;}
- echo $i.'x'.$k.'='.$i*$k.' ';
- # 外层与个数相同,换行并进行下一页
- if($i == $k){
- echo '<br/>';
- rideNum(1,$k+1);
- }
- # 个数未尽,继续+1, 本行继续输出
- rideNum($i+1, $k);
- }
- rideNum(1,1);
评论