链接:https://www.nowcoder.com/acm/contest/185/F
来源:牛客网
输入一个整数X,求一个整数N,使得N!恰好大于XX。
输入描述:
第一行:一个整数X
输出描述:
第一行:一个整数N
示例1
输入
复制
7
输出
复制
10
备注:
每个测试点所对应的X满足: 第i个测试点输入的值为第i-1个测试点输入的值乘以10再加上7。 特别的,第一个测试点所输入的值为7。 提示:数据共有10组。
打表好题
第i 组数据的输入就是 i个 7
枚举[1,∞) 之后判断与x^x 大小 然后,发现太大,
两边取自然对数。
左边就变成
ln1+ln2+。。。+lnN
右边变成
xln(x)
这样开long double 就可以不用考虑精度问题了,复杂度O 答案
然后打一发表
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<ctime>
#include<cmath>
#include<cstring>
using namespace std;
long long n;
int main()
{
scanf("%lld",&n);
if(n==7ll) puts("10");
if(n==77ll) puts("94");
if(n==777ll) puts("892");
if(n==7777ll) puts("8640");
if(n==77777ll) puts("84657");
if(n==777777ll) puts("834966");
if(n==7777777ll) puts("8267019");
if(n==77777777ll) puts("82052137");
if(n==777777777ll) puts("815725636");
if(n==7777777777ll) puts("8118965902");
return 0;
}