HDOJ 1060 Leftmost Digit

         同样使用lg值计算最高位。任意一个数都可以表示为科学计数法的性质,即N^N=a*10^x,所以最高位就是a的整数部分。

1.怎样去除10^X呢? 取lg的对数然后去除整数部分,然后将小数部分再取10的指数得到的值就是a。

2.怎样去取最高位。对a取整即是。

所以有代码:

#include <stdio.h>
#include <math.h>
int main()
{
    int caseNum;
    scanf("%d",&caseNum);
    for(int i=0;i<caseNum;i++)
    {
        double num;
        scanf("%lf",&num);
        double logNum=num*log10(num);
        double remainder=logNum-(__int64)logNum;
        int result=pow(10.0,remainder);
        printf("%d\n",result);
    }
    return 0;
}


 

阅读更多
个人分类: 基础算法
上一篇HDOJ 1056 HangOver
下一篇HDOJ 1061 Rightmost Digit
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭