Greatest Common Divisor(GCD) of Two Numbers

来源:互联网 发布:好听的名字知乎 编辑:程序博客网 时间:2024/05/20 01:39
#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;}

原创粉丝点击