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; } }