您的位置:首页 > 其它

UVa 10916 - Factstone Benchmark

2012-07-28 09:56 369 查看
m! <= 2^n ,求最大的m;

两边同时取对数。

#include<iostream>
#include<cmath>

using namespace std;

int f[21];

int main()
{
int n, i, j, k;
double sum=0;
for (i=0, j=0, k=4; i<21; i++, k*=2)
{
for (j++; ; j++)
{
sum+=log10((double)j);
if (sum >= k*log10(2.))
{
f[i]=j-1;
break;
}
}
}
while(cin >> n, n)
cout << f[(n-1960)/10] << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: