箱子归位(c++)

牛村的中央广场

是一块5*5的矩阵空旷广场,广场上有且仅有一个救助箱,每天下班前,牛可乐都要把救助箱推回到广场的中心位置(第三行第三列),牛可乐可以向上下左右四个方向推箱子,一次只能推动一个单位,请问牛可乐要推几次才能把救助箱推回中心位置?

输入描述:

输入5行,每一行5个整数,以空格隔开,数据保证只有一个1,代表救助箱,而且其他数都是0

输出描述:

输出一行,包含一个整数,表示最少的推箱子次数。

题目解析:本题为一道二维数组题目,首先要定义一个二维数组,在箱子所在处标记“1”,就如同下面代码的if(a[i][j]==1)找到箱子所在的行和列,距离中央a[3][3]的距离之和。

比如 0 0 0 0 1 1所在的行为1,列为5,因此要先向下2,在向左2,就是abs(1-3)+abs(5-3)=4

代码如下:

#include<iostream>
#include<cmath>
using namespace std;
int a[6][6],sum;
int main(){
for(int i=1;i<=5;i++){
    for(int j=1;j<=5;j++){
        cin>>a[i][j];
        if(a[i][j]==1){//在自己输入中找到1所在的行和列
            sum=abs(i-3)+abs(j-3);//比如01000 1在第1行第2列,sum=abs(1-3)+abs(2-3)=3
            cout<<sum;
            return 0;
        }
    }
}
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值