二维数组对角线位置上的数都为1,从1向左右两边递增。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <map>
#include <set>
#include <queue>
#define ll long long
#define lowbit(x) ((~x+1)&x)
using namespace std;
int main() {
int n;
while(cin>>n) {
if(n==0) break;
int a[105][105];
for(int i=1; i<=n; i++) {
a[i][i] = 1;
}
for(int i=1; i<=n; i++) {
int t = 1;
for(int j=i-1; j>=1; j--) {
a[i][j] = ++t;
}
t=1;
for(int j=i+1; j<=n; j++) {
a[i][j] = ++t;
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
j==1?cout<<a[i][j]:cout<<' '<<a[i][j];
}
cout<<endl;
}
cout<<endl;
}
return 0;
}