题目描述
blablabla
C++ 代码
#include<iostream>
using namespace std;
const int N = 101;
int a[N][N];
int main()
{
int n;
while( cin >> n && n )
{
if(n == 1) // n = 1, 2, 3 是特殊情况
cout << 1 << endl;
else if (n == 2)
cout << "1 1" << endl << "1 1" << endl;
else if (n == 3)
cout << "1 1 1" << endl << "1 2 1" << endl << "1 1 1" << endl;
else //当 n > 3时, 可以通过这样的操作,随i0的增大而将a[i][j]++的层数对应地减少, 从而达到目的~
{
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j ++)
a[i][j] = 0;
for(int i0 = 1; i0 < n - 1; i0 ++)
{
for(int i = i0 - 1; i < n - i0 + 1 ; i ++)
for(int j = i0 - 1; j < n - i0 + 1; j ++)
a[i][j] ++;
}
for(int i = 0; i < n; i ++)
{
for(int j = 0; j < n; j ++)
printf("%d ", a[i][j]);
cout << endl;
}
}
cout << endl;
}
return 0;
}