HDOJ 1141 Factstone Benchmark

用对数

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int y;
while(cin>>y&&y)
{
    int i;
    double sum=0.0;
    int t=(y-1960)/10+2;
    t=1<<t;
    for(i=1;;i++)
    {
        if(t-sum>=1e-8)
        {
            sum+=(log(i)/log(2.));
         //   cout<<log(i)<<" "<<sum<<endl;
        }
        else
        {
            break;
        }
    }

    cout<<i-2<<endl;

}

    return 0;
}

原文地址:https://www.cnblogs.com/CKboss/p/3351131.html