平方矩陣 II

平方矩陣 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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章