题解
第
y
年的位数为:
此题求解的是:
n!<=2k−1
转化一下:
logn!=logn+log(n−1)+...+log1<=log(2k−1)<k
(基底为2)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int y;
while(cin >> y && y){
double k = pow(2, 2 + (y - 1960) / 10);
int i = 1;
double f = 0;
while(f < k) f += log2(++i);
cout << i - 1 << endl;
}
return 0;
}