题目链接在此
用log函数用把乘法转换为加法。
n! < 2^bits ==> log(1) + log(2) + … + log(n) < bits * log(2)
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int year;
while (cin >> year && year) {
double bits = pow(2.0, 2 + (year - 1960) / 10);
double top = bits * log(2);
int n = 1;
double sum = 0;
while (sum < top) {
n++;
sum += log(n);
}
cout << n - 1 << endl;
}
return 0;
}