php如何打印一个边长为N的实心和空心菱型
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"php如何打印一个边长为N的实心和空心菱型",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"php如何打印一个边长为N的实心和空心菱
千家信息网最后更新 2025年11月07日php如何打印一个边长为N的实心和空心菱型
这篇文章主要为大家展示了"php如何打印一个边长为N的实心和空心菱型",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"php如何打印一个边长为N的实心和空心菱型"这篇文章吧。
本文实例讲述了php打印一个边长为N的实心和空心菱型的方法。分享给大家供大家参考。具体分析如下:
实心菱型计算方法:
$n:边长
$i:当前行,0开始
$rows:总行数
上部
前面空格数=$n-$i-1
字符数=$i*2+1
下部
前面空格数=$i-$n+1
字符数=($rows-$i)*2-1
使用 str_pad 可以减少for/while等循环
/** * 打印实心菱型 * @param int $n 边长,默认5 * @param String $s 显示的字符, 默认* * @return String */ function solidDiamond($n=5, $s='*'){ $str = ''; // 计算总行数 $rows = $n*2-1; // 循环计算每行的* for($i=0; $i<$rows; $i++){ if($i<$n){ // 上部 $str .= str_pad('', ($n-$i-1), ' '). str_pad('', $i*2+1, $s)."\r\n"; }else{ // 下部 $str .= str_pad('', ($i-$n+1), ' '). str_pad('', ($rows-$i)*2-1, $s). "\r\n"; } } return $str; } echo ''; echo solidDiamond(5); echo ' ';结果:
*
***
*****
*******
*********
*******
*****
***
*
空心菱型计算方法:
$n:边长
$i:当前行,0开始
$rows:总行数
上部
前面空格数=$n-$i-1
空心的空格数=$i*2+1-2
字符数=$i*2+1 - 空心的空格数
下部
前面空格数=$i-$n+1
空心的空格数=($rows-$i)*2-1-2
字符数=($rows-$i)*2-1 - 空心的空格数
/** * 打印空心菱型 * @param int $n 边长,默认5 * @param String $s 显示的字符, 默认* * @return String */ function hollowDiamond($n=5, $s='*'){ $str = ''; // 计算总行数 $rows = $n*2-1; // 循环计算每行的* for($i=0; $i<$rows; $i++){ if($i<$n){ // 上部 $tmp = $i*2+1; $str .= str_pad('', ($n-$i-1), ' '). str_pad(str_pad('', $tmp-2, ' ', STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH)."\r\n"; }else{ // 下部 $tmp = ($rows-$i)*2-1; $str .= str_pad('', ($i-$n+1), ' '). str_pad(str_pad('', $tmp-2, ' ', STR_PAD_BOTH), $tmp, $s, STR_PAD_BOTH). "\r\n"; } } return $str; } echo ''; echo hollowDiamond(5); echo ' ';结果:
*
* *
* *
* *
* *
* *
* *
* *
*
以上是"php如何打印一个边长为N的实心和空心菱型"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
边长
空格
字符
总行
内容
方法
篇文章
循环
结果
学习
帮助
实例
易懂
更多
条理
知识
编带
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全卫生手抄报
我国的网络安全主题
河北软件开发怎么做
数据库范识
以服务器数据库连接失败
了解并掌握光分配网络技术
社区聊天软件开发
美元对人民币数据库编程序
快速软件开发 微盘
服务器 cpu 利用率
国家数据库怎么导出
hubinate数据库
计算机网络技术期末重点
网络安全落实情况总结
人工智能数据库心得
网络安全及实施条例
网络安全填报系统
服务器如何写ip地址
寻甸正规软件开发价格实惠
虎牙宇宙服务器有没有搭路模式
我的世界服务器矿洞在哪
卡在登陆媒体服务器
福山区软件开发便宜
网络安全和信息化属于什么期刊
台州华顶网络技术有限公司
华亭市网络安全检查
小学生网络安全日记200字
win7服务器管管理器
excel第七课数据库处理
六七十岁还有学计算机网络技术吗