题目描述 Description
使得x^x达到或超过n位数字的最小正整数x是多少?
输入描述 Input Description
输入一个正整数n。
输出描述 Output Description
输出使得x^x达到n位数字的最小正整数x。
样例输入 Sample Input
11
样例输出 Sample Output
10
数据范围及提示 Data Size & Hint
n<=2 000 000 000
位数是x*log10(x)+1,直接二分数字
#include<cstdio>
#include<cmath>
typedef long long ll;
ll n;
int main()
{
scanf("%lld",&n);
ll l=0,r=1e9;
while(l<r)
{
ll mid=(l+r)/2;
if(mid*log10(mid)+1>=n)r=mid;
else l=mid+1;
}
printf("%lld\n",l);
return 0;
}
总结
无