noder上課無聊摸魚,他在紙上隨意寫下了兩個數字x和y。現在他想把x通過某種方法變成y,為了把讓這個過程更加有趣,所以他限定自己只能使用兩種操作:
1、把當前x乘二
2、把當前x減一
因為課堂上的時間有限,所以他用了最少的操作次數實現這一過程。下課後,路過的qz看到了noder紙上寫著的x和y,他一秒鐘以內就知道了noder用了多少次操作。那麼問題來了,noder到底用了多少次操作呢?
輸入兩個數字表示x和y
其中1<= x <= 1,000,000,000
1<= y <= 1,000,000,000
輸出乙個數字,表示把x變成y最少需要多少次操作
輸入樣例
1 1000000000
輸出樣例
39又是轉換角度的思維題
考慮把y變成x有兩種操作
1:/2
2:+1
奇數只能+1
偶數,要最少操作,就直接貪心/2,如果小於x了,就再加回來
#includeusing namespace std;
int main()
if(y%2)
y++;
else
y/=2;
ans++;
} cout<;
return 0;
}