刚看到题目没什么头绪,去百度搜索了最大公约数,在百度百科看到数学上的求解的方法“辗转相除法”,很适合编程解题
下面是实现代码
#include<iostream>
using namespace std;
int myfunction(int a,int b);
int main(){
int a,b;
scanf("%d,%d",&a,&b);
int result = myfunction(a,b);
cout<<result;
return 0;
}
int myfunction(int a,int b){
int first,second;
first = max(a,b);
second = min(a,b);
int tmp;
tmp = first % second;
if(tmp == 0){
return second;
}else{
myfunction(second, tmp);//辗转相除法,递归运算
}
}
做完后我看到有超级简洁的代码,实在是想不到那种啊