python-计算矩阵边缘元素之和(赛氪OJ)

[题目描述]
输入一个整数矩阵,计算位于矩阵边缘的元素之和。
所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入:
输入共 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。


运行效果展示:

79be1a6b953849f2b9d15ed81997d426.jpg

a7acd7ab3451406cb1fc9d7e8cbe56ca.jpg 

               (声明:以上内容均为原创) 

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

闪云-微星

感谢大家的支持与鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值