hdu 1060 Leftmost Digit

// 做了好一会儿,数学
// 将 n^n 转化为 10^(n*lg(n)),其中 
// n*lg(n)的小数部分作为10的幂为个位数 
#include<stdio.h>
#include<math.h>
int main(void)
{
    __int64 t;
    double n;
    scanf("%I64d",&t);
    while(t--)
    {
        scanf("%lf",&n);
        double temp=n*log10(n),t0; 
        double a=modf(temp,&t0); //a为temp的小数部分,t0为整数部分 
        a=pow(10.0,a);
        printf("%I64d\n",(__int64)a);
    }
    return 0;
}
              

 

posted @ 2013-09-12 15:53  heaventouch  阅读(74)  评论(0编辑  收藏  举报