X-man

导航

hdu 1060 Leftmost Digit

题解:

  m=n^n;两边同取对数,得到,log10(m)=n*log10(n);再得到,m=10^(n*log10(n));

然后,对于10的整数次幂,第一位是1,所以,第一位数取决于n*log10(n)的小数部分

 

#include<stdio.h>
#include<math.h>
int main()
{
    int _case;
    double n;
    scanf("%d",&_case);
    while(_case--)
    {
        scanf("%lf",&n);
        double m=n*log10(n);
        m-=(long long)m;
        int ans=pow(10.0,m);
        printf("%d\n",ans);
    }
    return 0;
}

 

 

 

posted on 2013-09-13 15:52  雨钝风轻  阅读(107)  评论(0编辑  收藏  举报