zoukankan      html  css  js  c++  java
  • sicily 1119. Factstone Benchmark

    Description
    Amtel has announced that it will release a 128-bit computer chip by 2010, a 256-bit computer by 2020, and so on, continuing its strategy of doubling the word-size every ten years. (Amtel released a 64-bit computer in 2000, a 32-bit computer in 1990, a 16-bit computer in 1980, an 8-bit computer in 1970, and a 4-bit computer, its first, in 1960.)

    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.

    Input
    Given a year 1960 ≤ y ≤ 2160, what will be the Factstone rating of Amtel's most recently released chip? 
    Output
    There are several test cases. For each test case, there is one line of input containing y. A line containing 0 follows the last test case. For each test case, output a line giving the Factstone rating. 
    Sample Input
     Copy sample input to clipboard 
    1960
    1981
    0
    
    Sample Output
    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;
    }
  • 相关阅读:
    RDP劫持:如何透明劫持RDS以及RemoteApp会话
    渗透测试工具备忘单
    Scrapy爬取慕课网(imooc)所有课程数据并存入MySQL数据库
    关于读取properties文件路径问题
    python随机生成测试数据用户名
    字典的应用(根据第一列,统计第二列之和)
    冒泡算法和排序算法运行速度比较
    判断日期天数
    Python爬虫抓取煎蛋(jandan.net)无聊图
    快递查询
  • 原文地址:https://www.cnblogs.com/xiezhw3/p/4132811.html
Copyright © 2011-2022 走看看