華為機考,蛇形矩陣,python

2021-10-23 12:16:51 字數 977 閱讀 2206

思路:

每行的數是有規律的,以n=4為例,第一行的第乙個數是1,第二數是1+2=3,第三個數是3+3 =6,第四個數是6+4=10,總共加了n-1次分別是range(2,n+1),第二行的第乙個數是1+1=2,第二個數是2+3=5,第三個是5+4=9,總共加了n-2次,分別是range(3,n+1)。第三行第乙個數是第二行第乙個數加2,2+2 =4,第二個數是4+4=8,總共加n-3次為range(4,n+1),第四行第乙個數是第三行第乙個數加3,4+3=7,第四行沒有其他數因為n-4=0。泛化成數字表示,第i行的第j個數等於第i行的前乙個數加list(range(i+1,n+1))[j]。dp[i][j]=dp[i][j-1]+list(range(i+1,n+1))[j]。我們需要每一行的第乙個數,dp[i][1]=dp[i-1][i]+i-1。所以第一行的第乙個數必須初始化為1。為了方便迭代,我們初始化乙個dp[0][1]=1,第一行的第乙個數是dp[1][1]=dp[0][1]+1-1=1。其他的每個數按迭代方式更新。**如下:

while

true

:try

: n =

int(

input()

) a =

1#初始化dp[0][1]

for i in

range(1

,n+1):

#更新第i行的後面的數

list1 =

a = a + i -

1 b = a

str(a)

)for i2 in

range

(i+1

,n+1):

#更新第i+1行的第乙個數,為下一輪第i+1行的更新做準備

b = b + i2

str(b)

)print

(' '

.join(list1)

)except

:break

華為OJ 蛇形矩陣

蛇形矩陣 題目說明 蛇形矩陣是由1 開始的自然數依次排列成的乙個矩陣上三角形。樣例輸入 5 樣例輸出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 介面說明 原型 void getresult int num,char presult 輸入引數 int num 輸入的正整數...

華為OJ 蛇形矩陣

題目說明 蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。樣例輸入 5 樣例輸出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 介面說明 原型 void getresult int num,char presult 輸入引數 int num 輸入的正整數n 輸出引數...

華為OJ 蛇形矩陣

蛇形矩陣是由1開始的自然數依次排列成的乙個矩陣上三角形。樣例輸入 5樣例輸出 1 3 6 10 15 2 5 9 14 4 8 13 7 1211 原型 void getresult int num,char presult 輸入引數 int num 輸入的正整數n 輸出引數 int presult...