
搞不懂了,还是有其他方向吗?不是先÷2然后减5,标记加起来的最少次数吗?
以下是我的算法
#include <iostream>
using namespace std;
int main()
{
int n, x, ct = 0;
cin >> n >> x;
while (n > 0)
{
if ((n % 2 == 0) && (n / 2 > x)) //若能被2整除且除2比x大
n /= 2; //那么先除2
else
n -= x; //否则-x
ct++;
}
cout << ct << endl;
return 0;
}