#include <stdio.h>
#include <stdlib.h>
int gcd(int a, int b);
int gcdRecursive(int, int);
int gcdRecursiveHelper(int, int);
void swap(int* a, int* b);
int main()
{
int a = gcd(56,12);
int b = gcdRecursive(18, 12);
printf("%d %d\n", a, b);
return 0;
}
int gcd(int a, int b){
if(a < b)
swap(&a, &b);
int result = a%b;
while(result != 0){
a = b;
b = result;
result = a % b;
}
return b;
}
int gcdRecursive(int a, int b){
if(a < b){
swap(&a, &b);
}
return gcdRecursiveHelper(a, b);
}
int gcdRecursiveHelper(int a, int b){
int result = a%b;
if(result != 0){
return gcdRecursiveHelper(b, result);
}else{
return b;
}
}
void swap(int* a, int* b){
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
Greatest Common Divisor(GCD) of Two Numbers
最新推荐文章于 2020-04-16 10:37:43 发布