题目描述
使得x^x达到或超过n位数字的最小正整数x是多少?
输入格式输入一个正整数n。
输出格式输出使得x^x达到n位数字的最小正整数x。
样例输入 #1
11
输出 #1
10
数据范围与提示
n<=2 000 000 000
分类标签[二分] [二分答案]
C++题解代码
#include <bits/stdc++.h>
using namespace std;
int fn(int x) {
int c = 0;
while (x > 0) {
c++;
x = (x/10);
}
return c;
}
// The main procedure
int main() {
int a = 0;
int b = 1;
cin>>a;
int d = fn(pow(b, b));
while (d < a) {
b++;
d = fn(pow(b, b));
}
cout<<b;
return 0;
}
Blockly题解代码图片