我對此非常感興趣,必須爲項目做到這一點,所以請牢記這一點。陣列對角線的總和
我需要編寫一個函數sumOfDiagonal
,它有一個list類型的參數。
該列表是一個4x4的2維整數數組(4行4列整數)。
函數必須返回從右上角到左下角的對角線位置的整數之和。
我還沒有嘗試過任何東西,因爲我不知道從哪裏開始,所以將不勝感激一些指導。
我對此非常感興趣,必須爲項目做到這一點,所以請牢記這一點。陣列對角線的總和
我需要編寫一個函數sumOfDiagonal
,它有一個list類型的參數。
該列表是一個4x4的2維整數數組(4行4列整數)。
函數必須返回從右上角到左下角的對角線位置的整數之和。
我還沒有嘗試過任何東西,因爲我不知道從哪裏開始,所以將不勝感激一些指導。
由於您尚未指定語言(無論如何這可能是課堂作業),所以我必須提供僞代碼。給定4x4二維數組,基本思想是使用指定索引的循環,並使用該索引獲取維中的正確元素。假設我們有數組:
[][0] [][1] [][2] [][3]
----- ----- ----- -----
[0][] 1 2 3 4
[1][] 5 6 7 8
[2][] 9 10 11 12
[3][] 13 14 15 16
,我們想總結左上角到右下角的對角線(1+6+11+16
)(1)。這將是這樣的:
def sumOfDiagonal (arr, sz):
sum = 0
for i = 0 to sz - 1 inclusive:
sum = sum + arr[i][i]
return sum
這是使用正常的方式訪問數組。如果可能給出的問題含糊不清,你的數組實際上是實際上是一些描述的列表(例如一個十六個元素的鏈表),你只需要調整你如何得到「數組」元素。
例如,一個16元素的列表需要獲得節點0,5,10和15,這樣您可以在每次累積後跳過四個節點的列表。
舉例來說,這裏做的左上到右下的變體,它輸出34 (1+6+11+16)
一些Python代碼(2)預期:
def sumOfDiagonals(arr):
sum = 0
for i in range(len(arr)):
sum += arr[i][i]
return sum
print(sumOfDiagonals([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]))
( 1)要做左上角的右上角,只需要將第二個字段更改爲sz - i - 1
。
(2)的Python是理想僞代碼語言時,你要能夠測試您的僞代碼,只要你遠離它更復雜的邊角走:-)
感謝它是python 3.完全忘記提及/ tag as python3 – lxarmx
在什麼環境/語言? –