• POJ NOI MATH-7657 连乘积末尾0的个数


    问题链接POJ NOI MATH-7657 连乘积末尾0的个数


    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述

    给定两个正整数a,b(a < b)。求连乘积:

    a×(a+1)×(a+2)×...×(b-1)×b

    的末尾有多少个0?

    输入
    一行,包括两个正整数a,b。a < b <= 10000
    输出
    一个整数,即连乘积末尾0的个数。
    样例输入
    11 56
    样例输出
    11
    来源
    《奥数典型题举一反三(小学五年级)》 (ISBN 978-7-5445-2882-5) 第三章 第三讲 习题4


    问题分析

      这是一个计算的问题,需要数一下5的倍数的个数,同时需要数一下2的倍数的个数,取它们的最小值作为计算结果。

      例如124*125,其中2的倍数的个数是2,5的倍数的个数是3。

    程序说明

      (略)。




    AC的C++语言程序:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int a, b, ans2, ans5, d, x;
    
        cin >> a >> b;
    
        ans5 = 0;
        ans2 = 0;
    
        d = 5;
        for(;;) {
            if(b / d == 0)
                break;
            ans5 += b / d;
            d *= 5;
        }
    
        d = 5;
        for(;;) {
            if((a - 1) / d == 0)
                break;
            ans5 -= (a - 1) / d;
            d *= 5;
        }
    
        for(int i=a; i<=b; i++) {
            x = i;
            while((x & 1) == 0) {
                ans2++;
                x >>= 1;
            }
    
            if(ans2 >= ans5)
                break;
        }
    
        cout << min(ans5, ans2) << endl;
    
        return 0;
    }



  • 相关阅读:
    iOS开篇——UI之UILabel
    关于Block初识与自己的认识
    浅拷贝与深拷贝
    关于MacBook Pro选购
    准备考试 暂时停更
    Objective-C代理
    Objective-C协议初识
    Objective-C内存管理
    通讯录习题
    软件工程第二次作业 词频统计
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563955.html
Copyright © 2020-2023  润新知