php如何打印一个边长为N的实心和空心菱型
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要为大家展示了"php如何打印一个边长为N的实心和空心菱型",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"php如何打印一个边长为N的实心和空心菱
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
程序及网络技术课程有哪些书
长春直销软件开发公司
2016服务器管理器打不开
带括号的数字怎么存进数据库
软件开发外派的工作可以去吗
网络技术有专插本吗
维普数据库论文检索号
肥东企业网络技术咨询哪家好
sql数据库如何注入企业
网络安全 工作方案
网络安全知识 新疆
哪家网络安全公司做的比较好一点
2002年的联想服务器
中国国外数据库下载
不用服务器的文档共享
linux 初始化数据库
北航网络安全考研分数线
大型游戏服务器架构
小米手机软件开发者选项
网络安全微信平台宣传片
软件开发进度管控措施
网络安全遇到的问题
网络安全运维监控
深刻的网络安全教育
苹果推信2亿数据库
外企数据库
开州区网络软件开发流程要求
华科网络安全学院宿舍在哪个校区
机房服务器方案
狼群数据库