20200310之蛇形矩陣 (模擬)

2021-10-03 18:07:45 字數 1209 閱讀 6635

題目描述

蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。

輸入本題有多組資料,每組資料由乙個正整數n組成。(n不大於100)

輸出對於每一組資料,輸出乙個n行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角中同一行的數字用乙個空格分開。行尾不要多餘的空格。

樣例輸入

5樣例輸出

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11純模擬,蛇形走,看答案寫**:

#include

using

namespace std;

int a[

101]

[101];

intmain()

else

}for

(int i=

1;i<=n;i++

)for

(int j=

1;j<=n-i+

1;j++

)return0;

}

下面是摘抄題解……

這種題目往往都是找出各個元素之間的規律。

1 我們可以發現,每一行的首元素之間的規律為:

a(n) = a(n - 1) + n - 1;

a(1) = 1;

這個結論很容易就用乙個for迴圈實現。

2 再找出每一行元素之間的規律:

當輸入的正整數為n時,第rows行將要輸出 n-rows+1 個元素,而每行首元素和首元素下乙個元素之間的增量inc為 rows+1,往後元素之間增量加1。

#include

//n為總行數,rows為第幾行,列印該行資料

void

printn

(int n,

int rows)

//第rows行的第乙個元素為first

int tmp = first;

//第rows行的元素之間的增量inc從rows+1開始

int inc = rows +1;

for(i =

1; i <= n - rows +

1; i++

)//輸出第rows行的元素,共有n-rows+1個

}int

main()

return0;

}

找規律。兩個辦法都蠻好的,這個規律有點複雜要好好理解啊!

蛇形矩陣題解 模擬

輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格式 輸入共一行,包含兩個整數n和m。輸出格式 輸出滿足要求的矩陣。矩陣佔n行,每行包含m個空格隔開的整數。資料範圍 1 n,m 100 輸入樣例 3 3輸出樣例 1 2 3 8...

每天OnLineJudge 之 「蛇形矩陣 」

problem 蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。input 本題有多組資料,每組資料由乙個正整數n組成。n不大於100 output 對於每一組資料,輸出乙個n行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角中同一行的數字用乙個空格分開。行尾不要多餘的空格。sample i...

每天OnLineJudge 之 「蛇形矩陣 」

problem 蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。input 本題有多組資料,每組資料由乙個正整數n組成。n不大於100 output 對於每一組資料,輸出乙個n行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角中同一行的數字用乙個空格分開。行尾不要多餘的空格。sample i...