/*==========================================================*\
| 求2^k>=n!,两边同时log10,打表简化
\*==========================================================*/
int main()
{
int i, j, k;
ll y = 2;
int d[5000];
j = 1;
double sum = 0;
k = 1;
for (i = 1960; i <= 2160; i += 10) {
y *= 2;
double x = y;
x *= log10(2.0);
for (; ; ++j) {//优化
for (; k <= j; ++k)//优化
sum += log10(k * 1.0);
if (sum > x)
break;
}
d[i / 10] = j - 1;
//printf("%d %d\n", i, j - 1);
}
int n;
while (cin>>n, n) {
cout<<d[n / 10]<<endl;
}
return 0;
}
POJ-2661(不断优化)
最新推荐文章于 2019-01-28 17:48:51 发布