简单的模拟题,主对角线为1,依次枚举每一行,从1的位置开始往两边扩展,直到边界为止
#include<iostream>
using namespace std;
const int N=110;
int g[N][N];
int main(){
int n;
while(cin>>n&&n){
for(int i=0;i<n;i++){
g[i][i]=1;
int a=i-1,b=i+1;
while(a>=0){
g[i][a]=g[i][a+1]+1;
a--;
}
while(b<n){
g[i][b]=g[i][b-1]+1;
b++;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<g[i][j]<<' ';
}
cout<<endl;
}
cout<<endl;
}
return 0;
}