通过递归的方式,写一个金字塔程序,输入一个数n,金字塔的范围为1-n
时间: 2024-02-12 11:09:31 浏览: 70
好的,以下是使用递归方式实现的金字塔程序:
```python
def pyramid(n, i=1):
if i > n:
return
print(" " * (n-i) + "*" * (2*i-1))
pyramid(n, i+1)
n = int(input("请输入金字塔的范围:"))
pyramid(n)
```
程序中,`pyramid()` 函数用于递归地打印金字塔的每一行。其中,`n` 表示金字塔的范围,`i` 表示当前递归到第几行。
在每次递归中,我们首先判断当前行数是否超过了金字塔范围,如果超过了就直接返回。否则,我们就打印出当前行,其中星号的数量为 `2*i - 1`,空格的数量为 `n - i`。
最后,我们在主程序中输入金字塔的范围 `n`,然后调用 `pyramid()` 函数即可。
相关问题
通过递归的方式,写一个金字塔程序,输入1-15的任意一个数n,金字塔的范围为1-n
好的,以下是将输入数限制在1-15范围内的递归金字塔程序:
```python
def pyramid(n, i=1):
if n < 1 or n > 15 or i > n:
return
print(" " * (n-i) + "*" * (2*i-1))
pyramid(n, i+1)
n = int(input("请输入1-15范围内的一个数:"))
pyramid(n)
```
与上一个程序相比,我们在判断当前行数是否超过了金字塔范围之前,先加了一个判断输入数是否在1-15范围内的条件。如果不在这个范围内,就直接返回,不再执行打印金字塔的操作。
最后,我们在主程序中输入限制在1-15范围内的数 `n`,然后调用 `pyramid()` 函数即可。
通过递归的方式,写一个金字塔程序,输入1-15的任意一个数n,金字塔的范围为1-n,金字塔以数字显示
好的,以下是通过递归方式实现的金字塔程序:
```python
def pyramid(n):
if n == 1:
print("1")
return
pyramid(n-1)
print(str(n) * (2*n-1))
n = int(input("请输入金字塔的范围(1-15): "))
if n < 1 or n > 15:
print("输入无效")
else:
pyramid(n)
```
上述代码中,`pyramid`函数是一个递归函数,用于逐层输出金字塔。当输入为1时,输出数字1,递归结束;否则,先递归输出小于n的金字塔,再输出当前层的数字。其中,当前层的数字重复(2n-1)次,以形成金字塔的形状。
最后,根据用户输入,调用`pyramid`函数输出相应范围内的金字塔。如果用户输入的数字不在1-15范围内,则输出"输入无效"。
阅读全文