最大公约数——欧几里得算法

把求a,b的最大公约数问题转换成了求a,a mod b的最大公约数问题。

1.递归解法

#include<stdio.h>
int gcd(int a,int b){
	if(b==0) return a;
	else return gcd(b,a%b);
}
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("%d\n",gcd(a,b));
	}
}

2.非递归解法

#include<stdio.h>
int gcd(int a,int b){
	while(b!=0){
		int t=a%b;
		a=b;
		b=t;
	}
	return a;
}
int main(){
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("%d\n",gcd(a,b));
	}
}

 

相关文章:

  • 2021-08-05
  • 2021-06-02
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2021-11-01
  • 2022-01-15
  • 2022-12-23
猜你喜欢
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-06
  • 2021-09-08
相关资源
相似解决方案