PTA 6-4求n×n方阵四边元素之和

简介: PTA第一节 矩阵四边元素之和

PTA第一节 矩阵四边元素之和

:heartpulse::heartpulse::heartpulse: 让我们认真刷题,刷透C语言

在这里插入图片描述

一、题目描述

:warning::warning::warning: 直接看题目

在这里插入图片描述

==输入样例:==
10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
==输出样例==
198

二、题目分析

通过分析题目中给的条件和要求,很容易看出来这不是一道难题,但是有没有一种简单高效的方法,使我们解决这个问题就是我们应该关注的点了:bike::bike::bike:

在这里插入图片描述
从我圈出来的地方大家可以看到,我们需要求出四个边上的元素之和。换种说法,就是要去求矩阵最外面那一圈元素之和。了解到题目的要求后,我们就可以着手开始做题啦。

三、解决思路

## 1、思路一:直接计算

既然题目要求对nn矩阵的四周元素进行求和,那么,==我们就进行递归,第一行的元素全部求和,2到n-1行只加第一列和最后一列,最后一行也是全部求和==,这样就可以求出结果,
但这样计算不仅递归次数多,如果是一个比较小的n看不出来时间复杂度的差距,但当n取1000,10000这样的代码是不堪一击的,甚至都无法写出完整的代码.:new_moon_with_face::new_moon_with_face::new_moon_with_face:

2、间接计算

题目已经告诉了我们要求最外面一圈的元素之和.我在这里给大家介绍一种简介的办法,不管n取多大,都能够游刃有余.
==我们可以分两步进行计算,先计算整个矩阵的元素之和,在计算除去最外层元素的矩阵之和,然后做差就可以得到最外层元素之和==
这种方法为我们节省了很多步骤,甚至写了输入之后,后面直接就是复制粘贴,改一下循环的条件,使得这个题目解决起来变得十分的方便.
在这里插入图片描述

四、代码实现

## 1、思想一代码实现

由于第一种方法太过于繁杂,在次我以一个5*5的矩阵的核心代码演示一下即可,感兴趣的小伙伴们可以自己下去试一下其他的.
for(i = 0;i < n;i++)
    {
        if(i == 0)
        {
            for(j = 0;j < n;j++) 
            sum += a[i][j];
        }
        if(i == 1 || i == 2 || i == 3)
        {
            sum = sum + a[i][0] + a[i][4];
         }
        if(i == 4)
        {
            for(j = 0;j < n;j++)
            sum += a[i][j];
         } 
    }

## 2、思想二代码实现

定义三个变量,==j记录整个矩阵的元素之和,k记录除了最外层元素之和,sum记录j-k==,话不多说,直接看核心代码:point_down::point_down::point_down:
int sum(int (*a)[N],int n){
    int i,j,sum=0,k=0,t=0;
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            j+=a[i][j];
        }
    }
    for(i=1; i<n-1; i++)
    {
        for(j=1; j<n-1; j++)
        {
            k+=a[i][j];
        }
    }
    sum=j-k;
    return sum;
}

总结

希望大家能够多多支持,你们的三连就是我最大的动力.最近发烧被隔离了,有那里写的有争议,还请各位大神指点出来.
在这里插入图片描述
目录
相关文章
|
7月前
|
人工智能
PTA-一维数组最大值和最小值交换
一维数组最大值和最小值交换
119 0
|
7月前
矩阵 螺旋矩阵
矩阵 螺旋矩阵
51 2
|
7月前
PTA-求平方与倒数序列的部分和
求平方与倒数序列的部分和
65 1
|
7月前
|
机器学习/深度学习
PTA-方阵转置
方阵转置
51 1
|
7月前
|
人工智能
PTA- 矩阵的主对角线元素之和
矩阵的主对角线元素之和
104 1
|
7月前
|
C++
【PTA】​L1-048 矩阵A乘以B​ (C++)
【PTA】​L1-048 矩阵A乘以B​ (C++)
77 0
【PTA】​L1-048 矩阵A乘以B​ (C++)
|
7月前
|
存储 C++
[C++/PTA] 矩阵的乘法运算
[C++/PTA] 矩阵的乘法运算
155 0
|
机器学习/深度学习
华为机试HJ53:杨辉三角的变形
华为机试HJ53:杨辉三角的变形
|
移动开发
半正定矩阵和正定矩阵的一些理解和补充
半正定矩阵和正定矩阵的一些理解和补充
1771 0
|
算法 C++
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分

热门文章

最新文章