本程序介绍如何使用辗转相除法及递归方法求最大公因数
#include<stdio.h>
//编写递归程序,计算两个数的最大公因数
int fun1(int m,int n)
{
int t,r=1;
if(m<n)
{
t=m;m=n;n=t;
}
while(r!=0)
{
r=m%n;
m=n;
n=r;
}
return m;
}
int fun2(int m,int n)//使用递归方法求最大公因数
{
if(n==0) return m;
return fun2(n,m%n);
}
int main()
{
printf("%d",fun2(30,75));
return 0;
}
辗转相除法很容易理解,递归法中,如果m比n小,则第一次递归使用相当于将m和n进行了调换。