给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- n = int(input()) a=list() for i in range(n): s1 = list() s=input().split() for j in s: s1.append(int(j)) a.append(s1)
sum = 0 for i in range(n): for j in range(n): if i!=n-1 and j!=n-1 and i+j!=n-1: sum += a[i][j] print(sum)
这个代码不难,主要是最后的判断,要明白最后一列和最后一行还有斜对角线和序列长度的关系。
补充:如果是正对角线的话,就是i和j相等。
程序分析:
1、定义一个列表s1,用来存放一行中输入的数据。
2、在外部定义一个列表a,将一行中的数据以一个单位存放在a中。
3、嵌套循环矩阵,判断并求和。
读书和健身总有一个在路上