最大公约数(递归)

56 阅读1分钟
使用递归的方法实现寻找最大公约数
int gcd(int a,int b)
{
	if(a<=0||b<=0)
	return 0;
	if(a%b==0)return b;
	else
	{
		gcd(b,a%b);
	}
	
	
}

#include<stdio.h>
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	printf("%d",gcd(n,m));
	return 0;
 } 

其实和用辗转相除法实现寻找最大公约数的思想差不多

就是如果一个数对另一个数取模,如果为0,则输出较小的那个数,如果不为零则继续取较小的那个数和取模后的数再次取模