递归法求最大公因数

本程序介绍如何使用辗转相除法及递归方法求最大公因数

#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进行了调换。

猜你喜欢

转载自blog.csdn.net/weixin_55848732/article/details/132631810