HDU 6033 Add More Zero (数学)

题目链接:https://vjudge.net/problem/HDU-6033

这水题好难想。。。。。。

题意:给一个数m,求一个数k满足10^k小于等于2^m-1。

 

这题其实是简单的公式化简:

 

= 10^k <= 2^m-1

 

= 10^k < 2^m

 

= ln10^k < ln 2^m

 

= k*ln10 < m*ln2

 

= k < m*1n2/1n10

 

代码:

 

int main()
{
    int cnt=0,m;
    while(cin>>m)
    {

        int ans=m*log(2)/log(10);//不要用for循环查找,否则超时
        printf("Case #%d: %d\n",++cnt,ans);

    }
    return 0;
}

 

posted @ 2018-07-17 20:49  Somnus、M  阅读(135)  评论(0编辑  收藏  举报