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

沃森博客 2017年12月14日00:15:26PHP技术评论981阅读模式

用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);  

 

沃森博客
  • 本文由 发表于 2017年12月14日00:15:26
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/873.html

发表评论