作者:不吐槽不舒服斯基啊
链接:https://www.nowcoder.com/discuss/40991?type=0&order=0&pos=12&page=1 来源:牛客网
#include <iostream>
using namespace std;
void find_equal(int num1,int num2,int n,int total1,int total2,int &min_num){
if(num1==total1&&num2==total2){
if(n<min_num)
min_num=n;
return;
}
if(num1>total1)
return;
n=n+1;
find_equal(num1*2,num2*2,n,total1,total2,min_num);
find_equal(num1+1,num2*2,n,total1,total2,min_num);
}
int main() {
int a,b,A,B;
while(cin >> a >> b>>A>>B){
int min_num=100000;
find_equal(a,b,0,A,B,min_num);
if(min_num!=100000)
cout<<min_num<<endl;
else
cout<<"-1"<<endl;
}
}
我是想着用迭代去找,但不知道为什么
min_num总是没变化==#腾讯#