hdu 1060_數學

http://acm.hdu.edu.cn/showproblem.php?pid=1060

/*
任何一個數字都可以n表示成10^(a+b),其中a>=1,b<1。
如:n=87455時,a=4,b=0.941784644. 
87455 = 10^(4+0.941784644)=10^4 * 10^0.941784644 = 10000 * 8.7455 
由sum=N^N,兩邊對10取對數,log10(sum)=Nlog10(N),有sum=10^(Nlog10(N))
*/
#include<stdio.h>
#include <math.h>
int main()
{
    int a,t;
    scanf("%d",&t);
    while(t--)
	{
        scanf("%d",&a);
        double b = (a * log10(a * 1.0) - (__int64)(a * log10(a * 1.0)));
        double ans = pow(10 * 1.0,b);
        printf("%d\n",(int)ans);
    }
       return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章