Description
小A的宠物狗最近不听话了,经常乱跑,这不,小A又在找他的宠物狗了,好在小A在宠物狗身上安装了定位器,现在小A知道了宠物狗的位置,要去抓宠物狗,小A和宠物狗在同一条直线上,小A起始于点N(0 <= N <= 100000),宠物狗位于点k(0 <= N <= 100000),小A有以下两种移动方式。
(1)从X 移动到 X - 1或 X + 1,每次移动花费一分钟。
(2)从X 移动到2X,每次移动花费一分钟。
假设宠物狗不知道小A在找他,站在原地不动,那小A最少要花多少时间才能抓住宠物狗?
Input
输入只有一行,N和K。
Output
抓到牛要花到最少的时间。
Sample Input
5 17
Sample Output
4
AC代码
#include <stdio.h>
int countShortest(int N,int K){
int count = 0,t;
if(N < K){
t = N;
while(t < K){
t += N;
if(t < K)
count++;
else {
t -= N;
break;
}
}
count += (K - t);
}
else{
count = N - K;
}
return count;
}
int main()
{
int N,K,minutes;
scanf("%d%d",&N,&K);
minutes = countShortest(N,K);
printf("%d\n",minutes);
return 0;
}