要求实现函数输出n行数字金字塔。
输入样例:5
输出样例:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
时间限制: 400 ms
内存限制: 64 MB
解析:由所给样例可知,该数字金字塔为n行,每行的数字为该行的行数,并且其形状为三角形,而且还可以看出第一行先空n个单位的空格后再输出数字,接下来依次递减一个单位的空格,由此使用双重循环实现数字金字塔的输出,即for语句外循环表示行,内循环并列两个for语句分别代表空格与所需要输出数字的个数。
代码:
#include<stdio.h>
void pyramid(int n)
{
int k,m=n;
for(int i=1;i<=n;i++,m--)//行
{
k=m;
for(;k>0;k--)
printf(" ");
for(int j=1;j<=i;j++)
printf("%d ",i);
printf("\n");
}
}
int main()
{
int n;
scanf("%d",&n);
pyramid(n);
return 0;
}