[題目描述]
輸入一個整數矩陣,計算位于矩陣邊緣的元素之和。
所謂矩陣邊緣的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
輸入:
輸入共 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。
運行效果展示:
?
? ? ? ? ? ? ? ?(聲明:以上內容均為原創)?