#include<iostream>
using namespace std;

//欧几里德算法求两个非负整数的最大公约数 
int getDivisor(int a,int b)
{
    int max,min;
    max = a;
    min = b;
    //两数中大数模小数,若结果不为0,则舍弃大数 ,把小数和模运算的结果分出大小来,继续取模运算
    //依次递归求解,直到模运算结果为0,则此时的小数就是最大公约数 
    if(max%min!=0){    
        if(max%min>min) 
            return getDivisor(max%min,min);
        else
            return getDivisor(min,max%min);
    }else
        return min;
}

int main()
{    
    //freopen("D:\\algorithm\\testdata.txt","r",stdin);
    int a,b,max,min;
    int result;
    cout<<"请输入两个非负整数 :" ;
    cin >> a >> b;
    a>b?(max = a,min = b):(max = b,min = a);
    result = getDivisor(a,b);
    cout<< a << "" << b << "的最大公约数为 " << result<<endl;
    return 0; 
}

 

相关文章:

  • 2021-05-02
  • 2021-06-19
  • 2022-12-23
  • 2022-12-23
  • 2021-11-24
  • 2022-01-27
  • 2022-01-30
猜你喜欢
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-04
  • 2022-01-22
  • 2022-12-23
  • 2021-10-28
相关资源
相似解决方案