UVA - 10916 Factstone Benchmark
题目大意:1960计算机位数为4位每过10年位数翻倍 求制定年所能得到的最大的n!的n
解题思路:求出n!大于等于2^位数的前一个n即可 这题可用log做
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main() {
int year;
while (scanf("%d", &year), year != 0) {
int bit = 4;
int n = (year - 1950)/10;
for (int i = 1; i < n; i++)
bit *= 2;
double max = bit*log(2);
double s = 0;
for (int i = 1; s < max; i++) {
s += log(i);
if (s >= max) printf("%d\n", i-1);
}
}
}