矩阵行、列、对角线和的最大值
作者 陈春晖
单位 浙江大学
求一个3*3矩阵每行、每列及对角线和的最大值。
输入格式:
在一行输入9个整数。
输出格式:
在一行输出每行、每列及对角线和的最大值。
输入样例:
在这里给出一组输入。例如:
3 6 5 9 8 2 1 4 5
输出样例:
在这里给出相应的输出。例如:
19
思路:
这题可以使用正常方法,遍历矩阵的行列,单独计算矩阵的主副对角线
def find_max(a):
#计算行最大值
row_sum = [sum(row) for row in a]
#计算列最大值
col_sum = [sum(col) for col in zip(*a)]
#计算主对角线
main_diag_sum = sum(a[i][i] for i in range(3))
#计算副对角线
anti_diag_sum = sum(a[i][2-i] for i in range(3))
max_num = max(max(row_sum),max(col_sum), main_diag_sum, anti_diag_sum)
return max_num
text = input().split()
a = [ [int(text[i * 3 + j ]) for i in range(3)] for j in range(3) ]
print(find_max(a))
因为本题的矩阵确定为3*3,所以也可以用一维列表,所有要计算的值是固定的,索引对应的值相加然后再比大小即可
t = list(map(int,input().split()))
a = max(t[0]+t[1]+t[2],t[3]+t[4]+t[5], t[6]+t[7]+t[8])
b = max(t[0]+t[3]+t[6],t[1]+t[4]+t[7], t[2]+t[5]+t[8])
c = t[0]+t[4]+t[8]
d = t[6]+t[4]+t[2]
print(max(a,b,c,d))