zoukankan      html  css  js  c++  java
  • 最大公约数

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    #include <cmath>
    #include <vector>
    
    using namespace std;
    
    //非递归形式 
    void gcl(int m,int n){
        int max,min,remainder;
        max = m > n ? m : n;
        min = m < n ? m : n;
    
        do{
            remainder = max % min ;
            max = min;
            min = remainder;        
        }while(remainder != 0) ;
        
        printf("%d",max);
    }
    
    //递归形式
    int gcd(int a,int b){
        if(b == 0){
            return a;
        }else{
            return gcd(b,a % b);
        }
    }
    int main(){
        int m,n;
        while(scanf("%d%d",&m,&n)){
            gcl(m,n);
        }
        return 0;
    }

    多个数的最大公约数算法 

    对这一组数进行排序(从大到小)
    对每两个相邻的两个数进行如下操作:设相邻的两个数为A和B(A在前,因为已经排序,所以A > B),如果A = n * B(n为整数),也就是A能够被B整除,那么就令A = B;如果A不能被B整除则令A = A % B。
    重复上面两步,直到数组中每个数都相等,则最大公约数就为这个数。

  • 相关阅读:
    内置常量
    python100练
    python之禅
    Django
    pymsql入门
    jQuery事件
    数据库(索引)
    算法基础知识
    数据库(查询专项)
    数据库(所有人都坐下!这是基本操作!)
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12901268.html
Copyright © 2011-2022 走看看