PTA 矩阵行、列、对角线和的最大值(python)

矩阵行、列、对角线和的最大值

作者 陈春晖
单位 浙江大学
求一个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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不如我们重新来过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值