#include
using namespace std;
int mins = 10000;
void dfs(int step,int b,int foot)
{
if (step > b) return;
if (step == b)
{
mins = mins > foot ? foot : mins;
return;
}
int i = 1;
foot++;
if (i == 1) dfs(2 * step, b, foot);
i++;
if (i == 2) dfs(step + 1, b, foot);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b;
cin >> a >> b;
dfs(a,b,0);
cout << mins << endl;
return 0;
}
自行进行了几组测试都没有问题
提交给平台提示:运行超时
刚学习了dfs所以想试着用这个方法来解决这个问题。
我看网上说这样的题目确实是用dfs之类的方法来解决的吧。
还是说有其他简易的办法.虚心求索!
用贪心算法试试,b如果是偶数就除以2,是奇数就-1,一直到b==a