本文主要是介绍牛客竞赛 箱子归位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:https://ac.nowcoder.com/acm/problem/22212https://ac.nowcoder.com/acm/problem/22212
题目描述
牛村的中央广场是一块5*5的矩阵空旷广场,广场上有且仅有一个救助箱,每天下班前,牛可乐都要把救助箱推回到广场的中心位置(第三行第三列),牛可乐可以向上下左右四个方向推箱子,一次只能推动一个单位,请问牛可乐要推几次才能把救助箱推回中心位置?
输入描述:
输入5行,每一行5个整数,以空格隔开,数据保证只有一个1,代表救助箱,而且其他数都是0
输出描述:
输出一行,包含一个整数,表示最少的推箱子次数。
示例1
输入
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
输出
3
其实这道题很简单,找到规律就可以做出来了!!!
比如:
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
1所在的行为1,列为5,因此要先向下2个位置,再向左2个位置,就是
abs(1-3)+abs(5-3)=4
再比如:
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 1 0
1所在的位置行为3,列为5,因此要先向上移动1个位置,再向左移动2次。
大家也可以多举几个例子来看看。
代码:
#include <bits/stdc++.h>
using namespace std;
int n=5,a[10][10],sum;
int main(){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>a[i][j];if(a[i][j]==1){sum=abs(i-3)+abs(j-3);cout<<sum;return 0;}}}return 0;
}
这篇关于牛客竞赛 箱子归位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!