Problem W: 打印金字塔
分析
关键就是找到输入的层数和空格以及*的数量关系并且用循环来表达即可。
Description
请编写程序输出金字塔图形。
Input
多个测试数据。每个测试数据输入一个整数n(1 <= n <= 9)
Output
输出n层金字塔。
Sample Input
1
3
Sample Output
HINT
用双重循环做,外循环代表行数,第一个内循环输出空格,第二个内循环输出*
for(;?
{
for(;?
{
}//输出空格
for(;?
{
}//输出*
}//外循环
#include<stdio.h>
int main()
{
int n,i,j,k,t,x,q,p;
while(scanf("%d",&n)!=EOF)
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("%d",i);
printf("\n");
}
for(x=n+1;x<=2*n-1;x++)
{
for(p=1;p<=x-n;p++)
printf(" ");
for(q=2*n-2*p+1;q>=1;q--)
printf("%d",2*n-x);
printf("\n");
}
return 0;
}
总结
1、重点关注各个变量之间的数量关系。
2、然后用循环有规律地实现即可。