通过递归的方式,写一个金字塔程序,输入1-15的任意一个数n,金字塔的范围为1-n,金字塔以数字显示
时间: 2024-02-12 18:09:39 浏览: 122
好的,以下是通过递归方式实现的金字塔程序:
```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范围内,则输出"输入无效"。
相关问题
通过递归的方式,写一个金字塔程序,输入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()` 函数即可。
C语言函数 输入任意一个正整数n和一个字符ch,输出n层数和指定字符的字符正立和倒立金字塔。
在C语言中,你可以创建一个函数来打印字符正立和倒立的金字塔结构。首先,我们需要获取用户输入的正整数`n`和字符`ch`,然后使用循环结构来构建金字塔。下面是一个简单的示例:
```c
#include <stdio.h>
// 定义一个函数来打印金字塔
void print_pyramid(int n, char ch) {
int i, j;
// 打印第一行
for (i = 0; i <= n; i++) {
printf("%*c", i, ch); // 显示指定次数的空格和字符
}
printf("\n");
// 递归地打印剩余的每一层
for (i = 1; i < n; i++) {
for (j = 0; j < n - i; j++) { // 左侧空格
printf(" ");
}
// 层内字符打印
for (j = 0; j < 2 * i + 1; j++) { // 每层的字符
if (j == 0 || j == 2 * i) {
printf("%c", ch);
} else {
printf(" ");
}
}
printf("\n");
}
// 最后打印倒转的第一行
for (i = n - 1; i >= 0; i--) {
printf("%*c", i, ch);
}
printf("\n");
}
int main() {
int n;
char ch;
// 获取用户输入
printf("请输入正整数n: ");
scanf("%d", &n);
printf("请输入字符ch: ");
scanf(" %c", &ch); // 用空格分隔,防止误读回车符
// 调用函数打印金字塔
print_pyramid(n, ch);
return 0;
}
```
阅读全文