HDU——解题报告 1060

来源:互联网 发布:桌面天气软件 编辑:程序博客网 时间:2024/05/21 09:35

  对于数论的题常年感冒,这题看了网上一篇非常巧妙的解法才AC的,大致叙说一下,N^N=10^(N*log10(N)),高潮来了,N^log10(N)=整数部分+小数部分,那么原式转化为:10^整数部分*10^小数部分,10^整数部分是一大串0不用管,那么我们只需要求出10^小数部分的整数位就是答案了,实在是服了,然后就是还学了一个math.h中的函数,小数部分=modf(待分解数字,&整数部分),代码如下:

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


 

0 0
原创粉丝点击