何星羽
(何星羽)
1
14. 对角元素之和
题目ID:6000必做题50分
最新提交:
Wrong Answer
0 分
历史最高:
Wrong Answer
0 分
时间限制: 1000ms
空间限制: 524288kB
题目描述
给定一个n*n的矩阵,输出它的主对角线和副对角线的和
输入格式
第一行包括一个整数n
接下来n行输出一个矩阵,矩阵中每个元素值不超过10
输出格式
输出两行,第一行是主对角线元素之和(左上~右下),第二行是副对角线元素之和。具体格式见样例输出。(右上~左下)
样例
Input 1
7 1 7 0 5 0 0 2 1 6 1 0 5 1 1 2 8 1 1 7 1 7 5 5 2 8 6 1 8 1 8 3 1 0 4 0 2 6 5 5 8 8 7 1 8 6 7 6 3 7
Output 1
s1=31 s2=28
样例解释
样例输入中,n=7,给定的矩阵为
1 7 0 5 0 0 2
1 6 1 0 5 1 1
2 8 1 1 7 1 7
5 5 2 8 6 1 8
1 8 3 1 0 4 0
2 6 5 5 8 8 7
1 8 6 7 6 3 7
主对角线元素之和为1+6+1+8+6+4+7=31,副对角线元素之和为2+5+1+1+5+2+1=28
数据范围
1<=n<=101<=n<=10
2 个赞
楼逸杨
(楼逸杨)
2
核心代码
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j==i){
any+=abs(a[i][j]);
}
}
}
for(int j=0;j<n;j++){
for(int i=0;i<n;i++){
if(j+i==n-1){
sum+=abs(a[i][j]);
}
}
}
AC了给解决方案!!!!!!!!!
2 个赞
楼逸杨
(楼逸杨)
4
输入
int n,sum=0,any=0;
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
2 个赞
楼逸杨
(楼逸杨)
5
输出
cout<<"s1="<<any<<endl;
cout<<"s2="<<sum<<endl;
3 个赞
何星羽
(何星羽)
6
#include<bits/stdc++.h>
using namespace std;
int a[1005][1005];
int main(){
int n,sum=0,any=0;
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j==i){
any+=abs(a[i][j]);
}
}
}
for(int j=0;j<n;j++){
for(int i=0;i<n;i++){
if(j+i==n-1){
sum+=abs(a[i][j]);
}
}
cout<<“s1=”<<any<<endl;
cout<<“s2=”<<sum<<endl;
}
return 0;
}
还是不对
1 个赞
我命由我不由天
(ゴテンクス)
9
你就像对角线都是形如 G[i][i] 的样式的,而副对角线是形如 G[i][n-i+1] 的样式的,就比如当 n=7 时对角线原素之和 =G[1][1]+G[2][2]+G[3][3]+G[4][4]+G[5][5]+G[6][6]+G[7][7] 而副对角线元素之和 =G[1][7]+G[2][6]+G[3][5]+G[4][4]+G[5][3]+G[6][3]+G[7][1] 其实就是简单的找规律
自己在理解一下,
要是懂了并且过了,给个解决方案
2 个赞