#include<iostream>
using namespace std;
int main()
{
int n,i,j,a[100],k,t;
cin>>n;
for(i=0;i<n;i++)
a[i]=i+1;
for(i=1;i<=n;i++) //第一部分输出n行
{
for(j=0;j<2*i-1;j++) //每行有2*i-1个数
{
if(j<((2*i-1)/2+1)) //判断j是否循环到了行中间
{
cout<<a[j];
k=j; //记录每行中间值时的j
}
}
for(t=k-1;t>=0;t--) //反序输出
cout<<a[t];
cout<<endl;
}
for(i=n-1;i>=0;i--) //第二部分输出剩下的n-1行
{
for(j=0;j<2*i-1;j++)
{
if(j<((2*i-1)/2+1))
{
cout<<a[j];
k=j;
}
}
for(t=k-1;t>=0;t--)
cout<<a[t];
cout<<endl;
}
return 0;
}
输入一个数输出以该数为中心向上下左右扩散的上下金字塔型
最新推荐文章于 2024-01-03 10:08:00 发布