随笔-65  评论-6  文章-0  trackbacks-0
 1 /*
 2 Author:    Leo.W
 3 Descriptipn:    计算N^N结果的最左边的数            
 4 How to Do:    数学题 由sum=N^N,两边对10取对数,log10(sum)=Nlog10(N),有sum=10^(Nlog10(N));
 5             由于10的整数次幂首位均为1,则仅需考虑Nlog10(N)的结果的小数部分即可
 6   */
 7 #include <stdio.h>
 8 #include <math.h>
 9 int main(){
10     //freopen("in.txt","r",stdin);
11     int t;
12     __int64 num,sum2;
13     scanf("%d",&t);
14     while(t--){
15         scanf("%I64d",&num);
16         double sum1=num*log10(double(num));
17         sum2=(__int64)sum1;
18         sum1-=sum2;
19         num=(__int64)pow(10.0,sum1);
20         printf("%I64d\n",num);
21     }
22     return 0; 
23 } 
posted on 2012-03-08 18:56 Leo.W 阅读(804) 评论(1)  编辑 收藏 引用

评论:
# re: hdu 1060(Leftmost Digit) 2015-08-10 16:18 | 吃肉肉
厉害
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理