我是靠谱客的博主 美满皮皮虾,最近开发中收集的这篇文章主要介绍catch the cow 抓住小黄牛,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*

农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:

1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟

假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?


*/

//java

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class catch_cow {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n,k;
Queue<Node> queue;
while(in.hasNext()){
n=in.nextInt();
k=in.nextInt();
queue=new LinkedList<Node>();
int walk=0;
queue.offer(new Node(n, 0));
while(!queue.isEmpty()){
Node node=queue.poll();
int x=node.x;
int step=node.step+1;
if(x+1==k||x-1==k||x*2==k){
walk=step;
break;
}
if(x*2>=0&&x*2<=100000){
queue.offer(new Node(x*2, step));
}
if((x-1)>=0&&(x-1)<=100000){
queue.offer(new Node(x-1, step));
}
if((x+1)>=0&&(x+1)<=100000){
queue.offer(new Node(x+1, step));
}
}
System.out.println(walk);
}
}
}
class Node{
int x=0;
int step=0;
public Node(int x,int step){
this.x=x;
this.step=step;
}
}

最后

以上就是美满皮皮虾为你收集整理的catch the cow 抓住小黄牛的全部内容,希望文章能够帮你解决catch the cow 抓住小黄牛所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部