简单做法,但是过了。
思路就是把 x 转换为 2log2x 的形式,然后暴力。
觉得是精度或者复杂度有问题,但它就是过了。
#include<bits/stdc++.h>
using namespace std;
double x,n;
long double nowmi;
long double mi;
int cnt=1;
int main(){
scanf("%lf%lf",&x,&n);
nowmi=log2(x);
if(nowmi>=n) return printf("0"),0;
nowmi=2*nowmi;
if(nowmi>=n) return printf("1"),0;
while(1){
nowmi--;
nowmi*=2;
cnt++;
if(nowmi>=n) return printf("%d",cnt),0;
if(cnt>=100000000) return printf("inf"),0;
}
return 0;
}