hdu 1060 Leftmost Digit

http://acm.hdu.edu.cn/showproblem.php?pid=1060 m=n^n;两边同取对数,log10(m)=n*log10(n); m=10^(n*log10(n))=(10^n)*(10^(n*log10(n))
然后,对于10的整数次幂,第一位是1,所以,左边第一位数取决于n*log10(n)的小数部分

View Code
 1 #include<iostream>
2 #include<cmath>
3 using namespace std;
4 int main()
5 {
6 int n,t;
7 cin>>t;
8 while(t--)
9 {
10 cin>>n;
11 double x=n*log10(n);
12 double y=x-(long long)x;//余数
13 long long z=(long long)pow(10.0,y);
14 cout<<z<<endl;
15 }
16 return 0;
17 }


 

posted @ 2012-04-02 19:14  keepmoving89  阅读(127)  评论(0编辑  收藏  举报