zoukankan      html  css  js  c++  java
  • C++实现求N个数的最大公约数和最小公倍数

    算法实现:

    #include <iostream>
    using namespace std;
    
    int divisor(int a,int b);
    int ndivisor(int *a,int n);
    int multiple(int a,int b);
    int nmultiple(int *a,int b);
    
    int main()
    {
        cout<<"请选择计算的数据数量:"<<endl;
        int n;
        cin>>n;
        while(cin.fail()){
            cout<<"Wrong, you have inputed a wrong type data
    "<<endl;
            cin.clear();//清除错误标记,重新打开输入流,但是输入流中依旧保留着之前的不匹配的类型
            /*cin.sync();*///清除cin缓存区的数据。
            while(cin.get() != '
    '){
                continue;
            }
            cout<<"please input again"<<endl;
            cin>>n;
        }
        cout<<"请输入"<<n<<"个数据:"<<endl;
        int a[n];
        for(int m=0;m<n;m++)
            cin>>a[m];
        int div=ndivisor(a,n);
        int mul=nmultiple(a,n);
        cout<<"上述"<<n<<"个数字的最大公约数为:"<<div<<endl;
        cout<<"上述"<<n<<"个数字的最小公倍数为:"<<mul<<endl;
        return 0;
    }
    
    int divisor(int a,int b)//两个数求最大公约数
    {
        int temp;
        if(a<b)
        {
            temp=a;
            a=b;
            b=temp;
        }
        while(b!=0)
        {
            temp=a%b;
            a=b;
            b=temp;
        }
        return a;
    }
    
    int ndivisor(int *a,int n)//n个数求最大公约数
    {
        if(n==1)
            return(*a);
        return divisor(a[n-1],ndivisor(a,n-1));
    }
    
    int multiple(int a,int b)//求最小公倍数
    {
        int divisor(int a,int b);
        int temp=divisor(a,b);
        return(a*b/temp);
    }
    
    
    int nmultiple(int *a, int n)//求n个数的最小公倍数
    {
        if (n == 1)
            return *a;
        else
            return multiple(a[n-1], nmultiple(a, n-1));
    }
    

      

    天晴了,起飞吧
  • 相关阅读:
    mysql报错排查总结
    java设计模式--外观模式
    java设计模式--策略模式
    java设计模式--策略模式
    java设计模式--简单工厂
    java设计模式--简单工厂
    国外有哪些比较好的IT社区
    使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)
    Fiddler环境配置教程
    Fiddler+Jmeter+断言详细教程
  • 原文地址:https://www.cnblogs.com/jianqiao123/p/12219086.html
Copyright © 2011-2022 走看看