2 条题解

  • 1
    @ 2023-7-30 9:42:01

    C++:

    #include <bits/stdc++.h>
    using namespace std;
    int p,n,a[12][12];
    int main()
    {
        cin >> n;
        for (int i = 0;i < n;i++)
        {
            for (int j = 0;j < n;j++)
            {
                cin >> a[i][j];
                if (i == j || i + j == n - 1) p += a[i][j];
            }
        }
        cout << p;
    }
    
    • 0
      @ 2023-3-7 21:12:39

      HHH,好久不见,鄙人又来搞事情了! 今天咱们来讲解一下P723【入门】对角线求和?


      思路

      我们首先思考对角线上的数有什么规律? 我们记输入的矩阵左上方的数的位置为(0,0),那么不难发现:

      • (1)在以(0,0)为端点的对角线上,每个点的坐标(x,y)都满足x=y.
      • (2)在以(0,n-1)为端点的对角线上,每个点的坐标(x,y)都满足x+y=n-1. 明确这两点后,我们便可以写出本题的核心代码:
      for i in range(a):
          S = S + K[i][i]#x=y
          S = S + K[i][a-i-1]#x+y=n-1
      

      接下来的事就是输入与输出,无需赘述。


      代码

      a=int(input())
      K=[]
      for i in range(a):
          K.append(list(map(int,input().split())))#这里作者及其lazy,干脆把代码集成到1行中了
      S=0
      for i in range(a):
          S = S + K[i][i]#x=y
          S = S + K[i][a-i-1]#x+y=n-1
      print(S)
      

      Loading:26/100…………^_^

      • 1

      信息

      ID
      723
      时间
      1000ms
      内存
      128MiB
      难度
      2
      标签
      递交数
      29
      已通过
      21
      上传者