首页 > 代码库 > 已知一个3 * 3矩阵,求对角线元素的和,并且中间的只可以加一次

已知一个3 * 3矩阵,求对角线元素的和,并且中间的只可以加一次

这道题有很多的方法,这是自己想出来的一个规律

例如

行    列   1  2 3

1 1  2  3

2 4  5  6

3 7  8  9


这里可以发现规律行和列的差 可以分辨出对角线的元素的位置,可以很快地找到

例如当   abs(行 - 列) != 1,才是对角线的元素,对于中间的元素只相加一次的话,

可以每次输入就相加。可以解决问题。


代码:


#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int sum = 0;
for(int i = 1; i <= 3; ++i)
{
int temp;
for(int j = 1; j <= 3; ++j)
{

cin>>temp;
if(abs(i - j) != 1)
{
sum += temp;
}

}
}
printf("%d\n", sum);
return 0;
}

已知一个3 * 3矩阵,求对角线元素的和,并且中间的只可以加一次