c語言遞迴函式實現求最大公約數(Euclid演算法)

Arrange fate發表於2020-10-11

1、編寫遞迴函式求兩個正整數a和b的最大公約數(GCD,Greatest Common Divisor),使用Euclid演算法:

如果a除以b能整除,則最大公約數是b。

否則,最大公約數等於b和a%b的最大公約數@[TOC](這裡寫自定義目錄標題)
#include <stdio.h>
#include <stdlib.h>
int gcc(int a,int b){
	if(a<b){
		a=a+b;
		b=a-b;
		a=a-b;
	}
	int remainder;
	remainder=a%b;
	if(remainder==0){
		return b;
	}else{
		a=b;
		b=remainder;
		return gcc(a,b);
	}
}
int main(void){
	int a,b;
	printf("input a,b:");
	scanf("%d,%d",&a,&b);
	printf("a=%d,b=%d,最大公約數:%d\n",a,b,gcc(a,b));
	system("pause");
	return 0;
}

相關文章