提交地址:http://cojs.tk/cogs/problem/problem.php?pid=558
558. 奇怪的函数
★☆ 输入文件:xx.in
输出文件:xx.out
简单对比
时间限制:1 s 内存限制:32 MB
问题描述
使得x^x达到或超过n位数字的最小正整数x是多少?
输入数据
输入一个正整数n。
输出数据
输出使得x^x达到n位数字的最小正整数x。
输入样例
11
输出样例
10
时间限制
各测试点1秒
内存限制
你的程序将被分配32MB的运行空间
数据规模
n<=2 000 000 000
1 #include<cstdio> 2 #include<cmath> 3 #define maxx 10000000000 4 using namespace std; 5 unsigned long long x,ans,l=1,r=maxx; 6 unsigned long long n; 7 unsigned long long f(unsigned long long x){ 8 return (x*(log10(x))+1); 9 } 10 int main(){ 11 scanf("%lld",&n); 12 while(l<r){ 13 x=(l+r)/2; 14 if(f(x)<n) l=x+1; 15 else r=x; 16 } 17 printf("%lld",l); 18 return 0; 19 }