洛谷 P2759 奇怪的函数
题目
题目描述
使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少?
输入输出格式
输入格式:
一个正整数 n
输出格式:
使得 x^x 达到 n 位数字的最小正整数 x
输入输出样例
输入样例#1:
11
输出样例#1:
10
说明
n<=2000000000
题解
x^x位数为log(x^x)+1<=>x*log(x)+1
代码
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int l,r,mid,n;
scanf("%d",&n);
l=1;r=1e9;
while (l<=r){
mid=(r+l)/2;
if (mid*log10(mid)+1<n) l=mid+1; else r=mid-1;
}
printf("%d",l);
return 0;
}