这题没什么难度,注意数字即可
//数字图形问题,即空格,递增数字,递减数字,注意一般化,for循环省不掉
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n<1||n>10)//检查范围
break;
for(int i=1;i<n+1;i++)//打印上层数字
{
for(int k=0;k<n-i;k++)//输出空格
{
cout<<" ";
}
int j=1;
while(j<=i)//打印递增数字
{
cout<<j;
j++;
}
j=i;
while(--j)//打印递减数字,注意--j还是j--
{
cout<<j;
}
cout<<endl;
}
for(int i=n-1;i>0;i--)//打印下层数字,不包括中间最长一层
{
for(int j=0;j<n-i;j++)
{
cout<<" ";
}
int k=1;
while(k<=i)
{
cout<<k;
k++;
}
k=i;
while(--k)
{
cout<<k;
}
cout<<endl;
}
}
return 0;
}