Python 数组对角和
我在这方面很新,必须为一个项目做这件事,所以请记住这一点 我需要编写一个函数Python 数组对角和,python,arrays,python-3.x,sum,Python,Arrays,Python 3.x,Sum,我在这方面很新,必须为一个项目做这件事,所以请记住这一点 我需要编写一个函数sumOfDiagonal,它有一个类型为list的参数 该列表是一个4x4二维整数数组(4行4列整数) 函数必须返回从右上角到左下角对角线位置的整数之和 我没有尝试过任何东西,因为我不知道从哪里开始,所以我希望得到一些指导。因为您还没有指定语言(而且这可能是课堂作业),所以我必须提供伪代码。给定4x42D数组,基本思想是使用指定索引的循环,并使用该索引获得两个维度中的正确元素。假设我们拥有阵列:
sumOfDiagonal
,它有一个类型为list的参数
该列表是一个4x4二维整数数组(4行4列整数)
函数必须返回从右上角到左下角对角线位置的整数之和
我没有尝试过任何东西,因为我不知道从哪里开始,所以我希望得到一些指导。因为您还没有指定语言(而且这可能是课堂作业),所以我必须提供伪代码。给定4x42D数组,基本思想是使用指定索引的循环,并使用该索引获得两个维度中的正确元素。假设我们拥有阵列:
[][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个元素的链表),那么你只需要调整获取“数组”元素的方式
例如,一个16个元素的列表需要获取节点0、5、10和15,这样您就可以在每次累积之后跳过四个节点来遍历该列表
举个例子,这里有一些Python代码(2),用于执行从左上到右下的变体,它按预期输出34(1+6+11+16)
:
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。完全忘记提到/标记为python3