【PHP实例】实现九九乘法表的几种方法(三种循环、四种角度、一种递归)

用php实现九九乘法表是一个面试遇到的实操题,今天把它来总结下。对老手来说这算不得什么,很容易。但对我这样的新手来讲,通过不同的方法来写还挺锻炼逻辑思维的。

  1. <?php   

  2.   

  3. //一、使用for循环打印九九乘法表:  

  4. for($j=1; $j<=9; $j++) {  

  5. for($i=1; $i<=$j$i++) {  

  6. echo "{$i}x{$j}=".($i*$j)." ";  

  7. }  

  8. echo "<br />";  

  9. }  

  10.   

  11. //二、使用while循环打印九九乘法表  

  12.   

  13. $j = 1;  

  14. while($j<=9){  

  15. $i = 1;  

  16. while($i<=$j){  

  17. echo "{$i}x{$j}=".($i*$j)." ";  

  18. $i++;  

  19. }  

  20. echo "<br />";  

  21. $j++;  

  22. }  

  23.   

  24.   

  25.   

  26. //三、使用do while循环打印九九乘法表  

  27. $j = 1;  

  28. do {  

  29. $i = 1;  

  30. do {  

  31. echo "{$i}x{$j}=".($i*$j)." ";  

  32. $i++;  

  33. while($i<=$j);  

  34. echo "<br />";  

  35. $j++;  

  36. while($j<=9);  

  37.   

  38. //下面使用for循环以表格形式输出九九乘法表  

  39. //角度一:(最普通的常规写法)  

  40.   

  41. echo "<table border='1'>";  

  42. for($j=1;$j<=9;$j++){  

  43. echo "<tr>";  

  44. for($i=1;$i<=$j;$i++){  

  45. echo "<td>{$i}*{$j}=".($i*$j)."</td>";  

  46. }  

  47. echo "</tr>";  

  48. }  

  49. echo "</table>";  

  50.   

  51. //角度二:(与常规写法成X轴对称)  

  52.   

  53.   

  54. echo "<table border='1'>";  

  55. for($j=9;$j>=1;$j--){  

  56. echo "<tr>";  

  57. for($i=1;$i<=$j;$i++){  

  58. echo "<td>{$i}*{$j}=".($i*$j)."</td>";  

  59. }  

  60. echo "</tr>";  

  61. }  

  62. echo "</table>";  

  63.   

  64.   

  65. //角度三:(与角度二成Y轴对称)  

  66.   

  67. echo "<table border='1'>";  

  68. for($j=9;$j>=1;$j--){  

  69. echo "<tr>";  

  70. for($z=0;$z<9-$j;$z++){  

  71. echo "<td> </td>";  

  72. }  

  73. for($i=1;$i<=$j;$i++){  

  74. echo "<td>{$i}*{$j}=".($i*$j)."</td>";  

  75. }  

  76. echo "</tr>";  

  77. }  

  78. echo "</table>";  

  79.   

  80. //角度四:(与常规写法成Y轴对称)  

  81.   

  82. echo "<table border='1'>";  

  83. for($j=1;$j<=9;$j++){  

  84. echo "<tr>";  

  85. for($z=0;$z<9-$j;$z++){  

  86. echo "<td> </td>";  

  87. }  

  88. for($i=$j;$i>=1;$i--){  

  89. echo "<td>{$i}*{$j}=".($i*$j)."</td>";  

  90. }  

  91. echo "</tr>";  

  92. }  

  93. echo "</table>";  

  94.   

  95.   

  96.   

  97. //递归写法  

  98.   

  99. // @param int : $i  个数  

  100. // @param int : $k  层数  

  101.   

  102. function rideNum($i=1, $k=1){  

  103.     if($i >= 10 || $k >= 10){exit;}  

  104.     echo $i.'x'.$k.'='.$i*$k.'  ';  

  105.    

  106.     # 外层与个数相同,换行并进行下一页  

  107.     if($i == $k){   

  108.         echo '<br/>';  

  109.         rideNum(1,$k+1);  

  110.     }  

  111.     # 个数未尽,继续+1, 本行继续输出  

  112.     rideNum($i+1, $k);  

  113. }  

  114. rideNum(1,1);  

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

【超燃计划】30天蜕变行动营,干掉平庸的自己

2021-3-23 0:00:00

未整理

一站式搞定视频号运营变现,从0到1学视频号运营实操培训课程视频

2021-3-25 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索