zoukankan      html  css  js  c++  java
  • POJ 3970(最小公倍数LCM)

    版权声明:Site:https://skyqinsc.github.io/ https://blog.csdn.net/u013986860/article/details/26182055
    

    知识点:

         最小公倍数(a,b)=a*b/最大公约数(a。b)



                                                                                                               Party


    Description

    The CEO of ACM (Association of Cryptographic Mavericks) organization has invited all of his teams to the annual all-hands meeting, being a very disciplined person, the CEO decided to give a money award to the first team that shows up to the meeting. 

    The CEO knows the number of employees in each of his teams and wants to determine X the least amount of money he should bring so that he awards the first team to show up such that all team members receive the same amount of money. You must write a program to help the CEO achieve this task.

    Input

    The input consists of multiple test cases, each test case is described on a line by itself, Each line starts with an integer N (1 <= N <= 20) the number of teams in the organization followed by N space separated positive integers representing the number of employees in each of the N teams. You may assume that X will always fit in a 32 bit signed integer. The last line of input starts with 0 and shouldn't be processed.

    Output

    For each test case in the input print "The CEO must bring X pounds.", where X is as described above or "Too much money to pay!" if X is 1000000 or more. 

    Sample Input

    1 3000000
    2 12 4
    0

    Sample Output

    Too much money to pay!
    The CEO must bring 12 pounds.


    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    
    __int64 num[30];
    
    __int64 gcd(__int64 a,__int64 b)
    {
        __int64 r;
        __int64 t;
        if(a<b)
        {
            t=a;
            a=b;
            b=t;
        }
        r=a%b;
        while(r)
        {
            a=b;
            b=r;
            r=a%b;
        }
        return b;
    }
    
    __int64 lcm(__int64 a,__int64 b)
    {
        return a*b/gcd(a,b);        //假设是int ,a*b将会溢出。造成错误
    }
    
    
    int main()
    {
       int t;
       __int64 res;
       while(scanf("%d",&t),t)
       {
           for(int i=0;i<t;i++)
            scanf("%I64d",num+i);
           res=num[0];
           //cout<<gcd(num[0],num[0]);
    
           for(int i=1;i<t;i++)
            res=lcm(num[i],res);
    
           if(res>=1000000)
               printf("Too much money to pay!
    ");
            else
                printf("The CEO must bring %I64d pounds.
    ",res);
       }
       return 0;
    }
    




  • 相关阅读:
    微信小程序实现课程表实例
    探索Java中的网络编程技术
    Java中的Spring MVC简介笔记
    我没有想赢,我只是不想输
    下次路过,人间再无我。
    从零基础入门MySQL数据库基础课
    vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础
    学习网站/实用工具,收藏的快搜网站,想找什么都有!!!
    【灵魂拷问】你真的懂得Mysql的管理和使用吗?
    【领会要领】web前端-轻量级框架应用(jQuery基础)
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10773647.html
Copyright © 2011-2022 走看看