[题目描述]
输入一个整数矩阵,计算位于矩阵边缘的元素之和。
所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入:
输入共 m + 1 行。
第一行包含两个整数 m, n (1 < m,n < 100) ,分别为矩阵的行数 m 和列数 n,两者之间以一个空格分开。
第 2 至第 m + 1 行数据中,每行包含 n 个整数,整数之间以一个空格分开。
输出:
输出共一行,包含一个整数,即对应矩阵的边缘元素和。
样例输入1
3 3
3 4 1
3 7 1
2 0 1
样例输出1
15
来源/分类(难度系数:一星)
完整代码展示:
a,b=map(int,input().split())
c=[]
for i in range(a):
d=list(map(int,input().split()))
c.append(d)
if len(c)<3:
e=0
sum=0
while e<len(c):
for j in range(0,len(c[e])):
sum+=c[e][j]
e+=1
print(sum)
else:
e=0
sum=0
while e<len(c):
for j in range(0,len(c[e])):
if e>=1 and j>=1 and e<=len(c)-2 and j<=len(c[e])-2:
pass
else:
sum+=c[e][j]
e+=1
print(sum)
代码解释:
“a,b=map(int,input().split())
c=[] ”,让用户输入矩阵的行数a和列数b。建立一个空列表c。
“for i in range(a):
d=list(map(int,input().split()))
c.append(d) ”,建立列表d,其内储存用户输入b个元素,接着将列表d添加进列表c中。重复以上操作a次,形成列表嵌套结构。
“if len(c)<3:
e=0
sum=0
while e<len(c):
for j in range(0,len(c[e])):
sum+=c[e][j]
e+=1
print(sum) ”,遍历列表c中的元素(列表),当矩阵元素的行数小于等于2时,矩阵边缘元素的总和即为列表c中所有元素的总和。打印总和sum。
“else:
e=0
sum=0
while e<len(c):
for j in range(0,len(c[e])):
if e>=1 and j>=1 and e<=len(c)-2 and j<=len(c[e])-2:
pass
else:
sum+=c[e][j]
e+=1
print(sum) ”,遍历列表c,当矩阵元素的行数大于等于3时,矩阵边缘元素即为矩阵中行,列数均大于等于2,且行数小于等于a-1,列数小于等于b-1的所有元素,求其总和,即为矩阵边缘元素的总和。打印总和sum。
运行效果展示:
(声明:以上内容均为原创)