你还会想起这道题吗

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

原神是由米哈游自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「提瓦特」的幻想世界,在这里,被神选中的人将被授予「神之眼」,导引元素之力。你将扮演一位名为「旅行者」的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人——同时,逐步发掘「原神」的真相。

现在,你作为异世界的旅行者,发现了一个富含元素能量的神秘正方形矩阵,并邂逅了一位性格迥异、能力独特的同伴——lwy。

矩阵外围着一层厚厚的墙壁,lwy正游荡在矩阵中收集能量值,顽固不化的他将从矩阵的左上角开始,从上、下、左、右、斜对角之中选定一个特定的方向(注意斜对角可能是正对角,也可能是反对角),并朝着这个方向坚定不移地在矩阵中前行,并收集能量值。然而,lwy是个路痴,一旦朝着的这个方向遇到了墙壁,lwy就会改变方向,朝着新的方向继续前行,直至又遇到墙壁,周而复始,直至把所有能走的路都走完……

通俗但不准确的来讲,lwy所走过的路可以如下图所示——

注意,能量值被收集过后将会消失,无法二次收集利用。很可惜lwy记性不好,忘记收集了多少能量值了qwq,聪明的你能帮他算算最终收集了多少能量值吗?

快帮帮lwy吧……qwq。

输入描述:

 

输入格式

第一行输入一个正整数n,表示一个n×nn\times nn×n的矩阵大小

接下来输入一个n×nn \times nn×n的矩阵,表示矩阵各个位置所具有的能量值


1≤n≤501\le n\le 501≤n≤50
保证矩阵的各个位置的元素均为正整数,且不超过100

输出描述:

 

输出一个整数,表示最终收集的能量值

示例1

输入

 

5
1 3 5 7 9
2 4 6 8 10
3 5 7 9 11
4 6 8 10 12
5 7 9 11 13

输出

 

147

说明

 

1+3+5+7+9+2+4+8+10+3+7+11+4+6+10+12+5+7+9+11+13=147

 这一题我的做法就是把第一行和最后一行加起来,然后再把第一列和最后一列加起来,然后加上左上到右下的对角,最后加上另外一个对角,加过的就标为0,然后加的时候进行判断,就不会有重复

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,i,j,y=0,a[55][55],x=0,z=0;
    cin>>n;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
           cin>>a[i][j];
    }
         for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            if((i==1||i==n)&&a[i][j]){y+=a[i][j];a[i][j]=0;}
    }
         for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
          if((j==1||j==n)&&a[i][j]){y+=a[i][j];a[i][j]=0;}
    }
          for(i=1;i<=n;i++)
              if(a[i][i])
             { y+=a[i][i];a[i][i]=0;}
        z=n;
        for(i=1;i<=n;i++){
            if(a[i][z])
                { y+=a[i][z];a[i][z]=0;}
            z--;
        } 
    cout<<y;
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星河欲转。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值