emmm……
1 #include <iostream> 2 using namespace std; 3 int a[100][100]={0}; 4 int main() 5 { 6 int n,x=0,y=0,t=1; 7 cin>>n; 8 int sum=(n*n+n)/2; //上三角的个数; 9 a[x][y]=1; 10 while(t<(n*n+n)/2) 11 { 13 a[x][++y]=++t; 14 while(y-1>=0&&!a[x+1][y-1]) 15 a[++x][--y]=++t; 16 a[++x][y]=++t; 17 while(x-1>=0&&!a[x-1][y+1]) 18 a[--x][++y]=++t; 19 } 20 for(int i=0;i<n;i++) 21 { 22 cout<<endl; 23 for(int j=0;j<n;j++) 24 if(a[i][j]) 25 cout<<a[i][j]<<" "; 26 else 27 cout<<" "<<" "; 28 } 29 cout<<endl; 30 return 0; 31 }