D.Dividing by Two
题意:给定两个数a,b,通过最少的操作使a,b相等,
可以执行的操作只有a=a/2(a为偶数)和a=a+1
思路:当a<=b时,可以进行的操作只有a=a+1;
当a>b时,尽可能多的使a=a/2,当a<b时再a=a+1;
AC代码:
#include<iostream>
using namespace std;
int main(){
int a,b,i;
cin>>a>>b;
if(a<=b){
cout<<b-a<<endl;
}
else{
int sum=0;
while(a!=b){
if(a<b){
a=a+1;
sum++;
}
else if(a>b){
if(a%2==0){
a=a/2;
sum++;
}
else{
a=a+1;
sum++;
}
}
}
cout<<sum<<endl;
}
}