牛村的中央广场
是一块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;
}