hdu-1060(数学问题)

时间:2023-03-08 19:58:34
hdu-1060(数学问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061

思路:结论:a=10^(N*lg(N) - [lg(N^N)]);

证明:如果一直a是结果,则a*10^x=n^n;

对等式两端去对数 lg(a*10^x)=lg(n^n);

x+lga = n*lgn;

所以:a=10^(n*lgn-x);

只要再求出x就可以了,x是n^n的位数,因此,x=[lg(n^n)],[ ]表示向下取整。

所以 a=10^(N*lg(N) - [lg(N^N)]);

参考文章:https://blog.csdn.net/zy691357966/article/details/39718037

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long LL;
int main(void)
{
int t;
LL n;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
double tp=1.0*n*log10(1.0*n);
tp=tp-(LL)tp;
int ans=(int)(pow(,tp));
printf("%d\n",ans);
}
return ;
}