标签:des style blog io ar color os 使用 sp
Amtel will use a new benchmark - the Factstone - to advertise the vastly improved capacity of its new chips. The Factstonerating is defined to be the largest integer n such that n! can be represented as an unsigned integer in a computer word.
1960 1981 0
3 8
分析:因为每 10 年翻一番,那么就是每十年位数变为原来的两倍,所以是2^((year - 1960) / 10 + 2) 那么最大的位数是2^22,远远超过了现有的计算机能表示的范围,所以不能直接使用阶乘计算。因为只是要找到不大于对应年份计算机能表示的最大值,所以可以用对数来计算。
#include <iostream> #include <cmath> using namespace std; int main(int argc, char const *argv[]) { int year; while (cin >> year && year != 0) { int times = (year - 1960) / 10; int bit = (int)pow(2, times + 2); double sum = 0; int n = 1; while (sum <= bit) { sum += log2(n++); // 将大整数运算转换为对数运算 } cout << n - 2 << endl; } return 0; }
sicily 1119. Factstone Benchmark
标签:des style blog io ar color os 使用 sp
原文地址:http://www.cnblogs.com/xiezhw3/p/4132811.html