//没有本地的源码,就说下思路吧:使用短除法的思想,对A进行短除法直到A变成比a大的最小的数,保存每一步的余数。最后的结果就是短除法的次数+余数是1的次数+最后一次短除法得到的数-a。 vector<int>reste; int cont=0; int Atem=A; while(A>a&&A/2>a){ reste.push_back(A%2);   A/=2;   cont++; } cont+=A-a; for(auto val:reste)   if(val==1)   cont++; cout<<cont;
点赞 3

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务