php实现菱形
实现菱形的基本思路
在PHP中实现菱形图案可以通过控制循环和输出空格、星号的数量来完成。菱形分为上半部分和下半部分,分别处理递增和递减的星号输出。
示例代码
<?php
function printDiamond($n) {
// 上半部分
for ($i = 1; $i <= $n; $i++) {
// 打印空格
for ($j = 1; $j <= $n - $i; $j++) {
echo " ";
}
// 打印星号
for ($k = 1; $k <= 2 * $i - 1; $k++) {
echo "*";
}
echo "\n";
}
// 下半部分
for ($i = $n - 1; $i >= 1; $i--) {
// 打印空格
for ($j = 1; $j <= $n - $i; $j++) {
echo " ";
}
// 打印星号
for ($k = 1; $k <= 2 * $i - 1; $k++) {
echo "*";
}
echo "\n";
}
}
// 调用函数,参数为菱形的高度(上半部分行数)
printDiamond(5);
?>
代码说明
- 上半部分:通过外层循环控制行数,内层循环分别控制空格和星号的输出。空格数量随着行数增加而减少,星号数量随着行数增加而增加。
- 下半部分:与上半部分类似,但行数递减,空格数量递增,星号数量递减。
- 参数
$n:表示菱形上半部分的行数,决定了菱形的大小。
输出示例
当调用printDiamond(5)时,输出如下:
*
*
*
*
*
*
*
*
*
自定义菱形大小
通过调整printDiamond()函数的参数,可以生成不同大小的菱形。例如,printDiamond(3)会输出一个较小的菱形:
*
*
*
*
*
其他实现方式
如果需要空心菱形,可以修改星号输出的逻辑,仅在边界位置输出星号,其余位置输出空格。示例代码如下:
<?php
function printHollowDiamond($n) {
// 上半部分
for ($i = 1; $i <= $n; $i++) {
for ($j = 1; $j <= $n - $i; $j++) {
echo " ";
}
for ($k = 1; $k <= 2 * $i - 1; $k++) {
if ($k == 1 || $k == 2 * $i - 1) {
echo "*";
} else {
echo " ";
}
}
echo "\n";
}
// 下半部分
for ($i = $n - 1; $i >= 1; $i--) {
for ($j = 1; $j <= $n - $i; $j++) {
echo " ";
}
for ($k = 1; $k <= 2 * $i - 1; $k++) {
if ($k == 1 || $k == 2 * $i - 1) {
echo "*";
} else {
echo " ";
}
}
echo "\n";
}
}
printHollowDiamond(5);
?>
空心菱形输出
调用printHollowDiamond(5)的输出如下:
*
* *
* *
* *
* *
* *
* *
* *
*






