平方矩陣 II
輸入整數N,輸出一個N階的二維數組。
數組的形式參照樣例。
輸入格式
輸入包含多行,每行包含一個整數N。
當輸入行爲N=0時,表示輸入結束,且該行無需作任何處理。
輸出格式
對於每個輸入整數N,輸出一個滿足要求的N階二維數組。
每個數組佔N行,每行包含N個用空格隔開的整數。
每個數組輸出完畢後,輸出一個空行。
數據範圍
0≤N≤100
輸入樣例:
1
2
3
4
5
0
輸出樣例:
1
1 2
2 1
1 2 3
2 1 2
3 2 1
1 2 3 4
2 1 2 3
3 2 1 2
4 3 2 1
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
本題思路:看似麻煩,矩陣的值實際上是有規律的,這題的規律是矩陣中的值是每個點到主對角線的距離+1
#include<iostream>
using namespace std;
int a[110][110];
int main()
{
int n;
while(cin >> n,n!=0)
{
for(int i=1;i<=n;i++)
{
int j=1,t=i;
while(t<=n&&j<=n)
{
a[t][j]=i;
t++;
j++;
}
}
for(int i=2;i<=n;i++)
{
int j=1,t=i;
while(t<=n&&j<=n)
{
a[j][t]=i;
t++;
j++;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(j!=1)
cout << " ";
cout << a[i][j];
if(j==n)
cout << endl;
}
}
cout << endl;
}
return 0;
}