PHP如何通过循环与取模运算打印循环三角数字模式
实现方法
核心通过取模运算实现固定区间1-4的数字循环,不需要拆分多段独立循环块,统一三层循环即可完成模式打印。
- 最外层循环控制每组的起始数字,从1遍历到最大值4,共4组
- 中层循环控制每组内每行的输出长度,从1递增到4,对应每组输出4行内容
- 最内层循环逐位计算当前要输出的数字:因为数字序列是连续递增的,遇到超过4的值要循环回到1,这里通过偏移取模实现
取模逻辑说明
因为常规取模是0基准的,直接对4取模时4%4=0,不符合我们需要1-4输出的要求,所以做一次偏移转换:
- 先把当前计算出的连续数值减1,把1-4的区间映射为0-3
- 对最大值4取模,得到0-3范围内的循环值
- 最后把结果加1,还原回1-4的输出区间
这样计算时,数值为5时(5-1)%4 +1 = 1,数值为6时(6-1)%4 +1=2,刚好满足循环衔接要求。
完整实现代码
$max = 4; // 配置数字循环的最大值 // 遍历每组的起始数字 for ($start = 1; $start <= $max; $start++) { // 遍历当前组内每一行的长度 for ($lineLength = 1; $lineLength <= $max; $lineLength++) { // 逐位输出当前行的数字 for ($offset = 0; $offset < $lineLength; $offset++) { $current = $start + $offset; // 取模转换为1-4区间的循环值 $output = ($current - 1) % $max + 1; echo $output; } echo "<br/>"; } }
运行上述代码即可输出符合要求的数字模式。
内容的提问来源于stack exchange,提问作者Arief
相关产品推荐
相关产品推荐

