题目描述
解法
我们稍微枚举一下前面几位,可以得到这样的规律。
\[X_i=\frac{1}{2^{i+1}-1}\]
\[Y_i=\frac{1}{2^{2^i}-1}\]
那么要使\(xm=yn\)那么就是\(m+1=2^n\),答案就是\(2^n-1\)。
对于这个位数,答案就是\(n*log2\)。
这道题沃做的时候,被浮点误差坑到了,所以在输出运算的时候还是要强制转换。
Ac代码
#include<bits/stdc++.h>
#define LL long long
#define dd double
using namespace std;
LL n;
int main(){
cin>>n;
if(n<32) {LL ans=(1<<n)-1;cout<<ans<<endl;}
else{dd x=log(2)/log(10);printf("%d\n",(int)((n*1.0)*x));}
return 0;
}