【ID:386】【20分】A. 实验5-11 空心的数字金字塔
时间: 2024-01-11 07:02:14 浏览: 44
题目描述
本题要求编写程序,输出一个由“数字金字塔”组成的空心图形。
“数字金字塔”的定义是:第一行只有一个数字,为1;第二行数字相同,为 22;以此类推,每一行的数字个数等于该行行号。
空心的规则是:金字塔左右两侧用“*”补齐,每个数字的左右也各有一个“*”,如样例输出所示。
输入格式:
本题不需要输入。
输出格式:
按照以下格式输出数字金字塔(行末不能有多余空格):
1
*2*
**22**
*3*3*3*
**3333**
*4*4*4*4*4*
**44444444**
输入样例:
本题不需要输入。
输出样例:
1
*2*
**22**
*3*3*3*
**3333**
*4*4*4*4*4*
**44444444**
(注:由于本题需要输出多行数据,因此建议大家把每一行的内容先存储起来,最后一起输出,这样可以保证格式的正确性。)
C++代码
相关问题
实验5-11 空心的数字金字塔 题目描述 本题要求实现一个函数,输入一个正整数n(1<=n<=9),输出n行空心的数字金字塔。要求定义和调用函数hollow_pyramid(n)打印出n行空心的数字金字塔。 输入 正整数n(1<=n<=9) 输出 样例查看模式 正常显示 查看格式 输入样例1 <-复制 5 输出样例1 1 2 2 3 3 4 4 555555555
以下是空心数字金字塔的Python代码实现:
```python
def hollow_pyramid(n):
for i in range(1, n+1):
# 打印数字前的空格
print(" "*(n-i), end="")
# 打印左侧数字
print(i, end="")
if i > 1:
# 打印左侧空格
print(" "*(2*i-4), end="")
# 打印右侧数字
print(i, end="")
# 打印数字后的空格
print(" "*(n-i))
n = int(input())
hollow_pyramid(n)
```
该函数的实现思路是遍历每一行,先打印数字前的空格,然后打印左侧数字,如果不是第一行,则打印左侧空格和右侧数字,最后打印数字后的空格。其中,左侧空格的数量为2*i-4,右侧数字的数量与左侧数字相同。
用C语言写实验5-11 空心的数字金字塔 题目描述 本题要求实现一个函数,输入一个正整数n(1<=n<=9),输出n行空心的数字金字塔。要求定义和调用函数hollow_pyramid(n)打印出n行空心的数字金字塔。 输入 正整数n(1<=n<=9) 输出 样例查看模式 正常显示 查看格式 输入样例1 <-复制 5 输出样例1 1 2 2 3 3 4 4 555555555
以下是实现空心数字金字塔的C语言代码:
```c
#include <stdio.h>
void hollow_pyramid(int n);
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
hollow_pyramid(n);
return 0;
}
void hollow_pyramid(int n)
{
int i, j, k, num = 1;
for(i = 1; i <= n; i++)
{
// 打印空格
for(j = n - 1; j >= i; j--)
printf(" ");
// 打印数字
for(k = 1; k <= num; k++)
{
if(k == 1 || k == num || i == n)
printf("%d", i);
else
printf(" ");
}
num += 2;
printf("\n");
}
}
```
代码思路:
首先输入正整数n,然后调用函数`hollow_pyramid(n)`打印出n行空心的数字金字塔。
在函数`hollow_pyramid(n)`中,利用三重循环实现打印空心数字金字塔的功能。
外层循环控制金字塔的行数;
第二层循环控制每一行打印的空格数;
第三层循环控制每一行打印的数字数。
在第三层循环中,如果当前打印的数字是该行的首尾数字,或者当前行是最后一行,就打印数字,否则打印空格。