硬币那道题我是第一题。。。想着是拿动态规划做,大家帮我看看,为什么min_num就是不变呢==我觉得我逻辑没问题啊ORZ

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