#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; }
原文地址:https://www.cnblogs.com/daemon94011/p/9021952.html
时间: 2025-01-13 06:00:08