解题思路:

先输入他的n*n的矩阵,所有可以直接for加一个空的列表来组成一个二维列表。

从左上角到右下角的对角线比较好做一些直接嵌套一个for循环然后判断一下这个二维数组的下标是否相等。
注意事项:

重点在于第三个很多人都有错误,不能光看那个样例,他可能会有偶数和奇数的所以要判断一下,偶数的话直接一次一次加就行了,奇数才是出错的那个地方因为偶数的话对角线没有重叠的地方,而奇数有所以要减掉一便对角线重复的那个数。

还有一个就是输入一个数的时候要单独加个判断。
参考代码:

n = int(input())
lis = []
for i in range(n):
   a = list(map(int,input().split()))
   lis.append(a)
sum = 0
for i in range(len(lis)):
   for j in range(len(lis[i])):
       if i == j:
           sum += lis[i][j]
sun = 0
s = 0
if n % 2 != 0:
   s1 = (int(pow(n,0.5)))
   for i in range(n-1,-1,-1):
       if s != s1:
           sun += lis[i][s]
       s += 1
else:
   for i in range(n-1,-1,-1):
       sun += lis[i][s]
       s += 1
if n == 1:
   print(lis[0][0])
else:
   print(sum+sun)

点赞(0)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论