10124 奇怪的函数

题目描述

使得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题解代码图片