【Luogu】P2759奇怪的函数(二分)

  题目链接

  看了题解之后突然发现这题简直是水题。然而不看题解就想不出来。为什么呢?

  len(x)=log10(x)+1

  于是二分寻找x。

  

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
long long ans;
int main(){
    long long l=0,r=2000000000;
    int n;
    cin>>n;
    while(l<=r){
        long long mid=(l+r)>>1;
        long long len=mid*log10(1.0*mid)+1;
        if(len<n)    l=mid+1;
        else {
            ans=mid;
            r=mid-1;
        }
    }
    printf("%lld",ans);
    return 0;
}

 

posted @ 2017-09-20 10:12  Konoset  阅读(119)  评论(0编辑  收藏  举报