【题目描述】
Vasya 最近找到了一个神奇的设备,这个设备只有两个按键,一个是红色的按键,另一个是蓝色的按键,另外还有一个显示器可以显示正整数。
如果按了一次红色的按键,这个设备就会把当前显示器上的数乘以 2,如果按了蓝色按键,就会把当前屏幕上的数减去一,如果屏幕上的数不是正整数了,那么这个设备就会崩溃。
这个显示器可以显示无穷大的正整数,初始的时候,显示器上的数是正整数 N。
请你计算为了在显示器上得到正整数 M,需要最少按多少次键。
【输入】
第一行是两个正整数 N 和 M,显示器上初始的数和最终要达到的数。
【输出】
输出最少需要按键的次数。
【样例输入 1】
4 6
【样例输出 1】
2
【样例输入 2】
10 1
【样例输出 2】
9
【样例说明】
【数据规模】
CODE<代码>
#include<bits/stdc++.h>
using namespace std;
int ans,n,m;
int main()
{
cin>>n>>m;
if(n>m)ans+=(n-m);
else
{
while(m>n)
{
if(m%2==0)
{
ans++;
m=m/2;
}
else
{
ans+=2;
m=(m+1)/2;
}
}
ans+=(n-m);
}
cout<<ans;
return 0;
}