四川大學線下程式設計比賽第一題 數字填充

2021-06-26 16:57:09 字數 809 閱讀 6223

peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n*n的**裡填數,規則:對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n*n的**列印出來吧。 

輸入描述:

多組測試資料(資料量在100組以內)。每組測試資料只有一行為乙個整數n(1<=n<=30),表示**的大小。

輸出描述:

對於每組輸入資料,輸出n行,為填完的**(n行,每行n個整數,每個數字之間用空格隔開。

輸入樣例:35

輸出樣例:

1 2 3

4 6 7

5 8 9

1 2 3 4 5

6 10 11 12 13

7 14 17 18 19

8 15 20 22 23

9 16 21 24 25

思路(個人觀點):總共分為兩個步驟,一是填數,二是輸出。關鍵是填數這個過程。觀察n=4的例子不難發現,首先是第一行n個數從1到n,然後後面的可以兩個操作分為一組,n-1個豎著的數和n-1個橫著的數為一組,接著是n-2個,n-3個,一直到1個。所以程式中是先填第一行,再一組一組地填,每填乙個資料要加一,這樣就是1到n*n。輸出時需注意,數與數之間有空格,但是行最後沒有,所以輸出乙個數,輸出空格,到每行最後乙個時輸出換行。

下面附**

#include

using namespace std;

void main()

for(int j=1;jfor(q=j;q}for(p=0;p}cout<}

四川大學線下程式設計比賽第一題 數字填充

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...

四川大學線下程式設計比賽第一題 數字填充

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...

四川大學線下程式設計比賽第一題 數字填充

peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資料量在10...