本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-03-24【PHP实例】实现九九乘法表的几种方法(三种循环、四种角度、一种递归)
加载中用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);