hgoi#2019/2/16--t1--math

题目描述

解法

我们稍微枚举一下前面几位,可以得到这样的规律。

\[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;
}

猜你喜欢

转载自www.cnblogs.com/chhokmah/p/10387549.html
今日推荐