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;
}

猜你喜欢

转载自www.cnblogs.com/Fy1999/p/9325791.html