编写一个嵌套的for循环,打印金字塔形输出

具体题目如下图:
在这里插入图片描述

import java.util.*;
public class printout {
   
   

	public static void main(String[] args) {
   
   
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入要打印的行数: ")
<think>我们使用双层for循环打印金字塔金字塔的特点是:每一行的星号数量是奇数(1,3,5,...),并且星号前面需要添加空格以实现居中对齐效果。假设金字塔的层数为n,则第i行(i从0开始)的空格数为n-i-1,星号数为2*i+1。我们将编写一个函数,参数n表示金字塔的层数。例如:当n=5时,金字塔如下:*************************</think> # 使用for循环打印金字塔 下面我将演示如何使用Python中的`for`循环和`range`函数实现嵌套循环打印不同风格的金字塔金字塔的核心原理是通过空格数量和星号数量的规律性变化来实现视觉上的金字塔状。 ## 基本金字塔 ```python def print_pyramid(n): """使用for循环打印基本金字塔 参数: n: 金字塔层数 原理: - 第i行(0≤i<n)需要打印 (n-i-1) 个空格 和 (2*i+1) 个星号 """ for i in range(n): # 控制金字塔层数 print(' ' * (n - i - 1) + '*' * (2 * i + 1)) # 测试打印5层金字塔 print_pyramid(5) ``` **输出结果:** ``` * *** ***** ******* ********* ``` ## 倒金字塔 ```python def print_inverted_pyramid(n): """打印金字塔 参数: n: 金字塔层数 原理: - 第i行(0≤i<n)需要打印 i 个空格 和 (2*(n-i)-1) 个星号 """ for i in range(n): print(' ' * i + '*' * (2 * (n - i) - 1)) # 测试打印5层倒金字塔 print_inverted_pyramid(5) ``` **输出结果:** ``` ********* ******* ***** *** * ``` ## 实心金字塔(无空格填充) ```python def print_solid_pyramid(n): """打印实心金字塔(无空格填充) 参数: n: 金字塔层数 原理: - 外层循环控制行数 - 内层循环控制每行星号数量 - 每行星号数为 (2*i+1) """ for i in range(n): print('*' * (2 * i + 1)) # 测试打印5层实心金字塔 print_solid_pyramid(5) ``` **输出结果:** ``` * *** ***** ******* ********* ``` ## 字符金字塔(使用特定字符) ```python def print_character_pyramid(n, char='A'): """打印指定字符的金字塔 参数: n: 金字塔层数 char: 金字塔使用的字符,默认为'A' """ for i in range(n): print(' ' * (n - i - 1) + (char + ' ') * (i + 1)) # 测试打印5层'A'字符金字塔 print_character_pyramid(5, 'A') ``` **输出结果:** ``` A A A A A A A A A A A A A A A ``` ## 对称金字塔(双金字塔组合) ```python def print_symmetric_pyramid(n): """打印对称金字塔(双金字塔组合) 参数: n: 金字塔层数 """ # 上半部分 for i in range(n): print(' ' * (n - i) + '*' * (2 * i + 1)) # 下半部分 for i in range(n-2, -1, -1): print(' ' * (n - i) + '*' * (2 * i + 1)) # 测试打印对称金字塔 print_symmetric_pyramid(5) ``` **输出结果:** ``` * *** ***** ******* ********* ******* ***** *** * ``` 这些实现都基于相同的核心原理: - **外层循环**:使用`range(n)`控制金字塔的层数 - **内层控制**:通过数学计算每行需要打印的空格数和字符数 - **对称公式**:每行星号数量计算 $2*i+1$ 金字塔打印的核心数学原理可以总结为: - 第$i$行的空格数:$n - i - 1$ - 第$i$行的星号数:$2 \times i + 1$ 其中$n$是金字塔的总层数,$i$是当前行号(从0开始)[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤求凰的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值