読者です 読者をやめる 読者になる 読者になる

mixiの「C/C++の課題丸投げ」コミュニティから「最大公約数の関数」の問題

C
最大公約数に関する次の関係を使って、2つの整数aとbを入力して、それらの最大公約数を求める整数型再帰関数GCD(a,b)を再帰関数を用いて作ってください。
GCD(a,b)=a     (a=b)
     =GCD(a-b,b)  (a>b)
     =GCD(a,b-a)  (a<b)


LinuxでC言語です。できれば今週中にお願いします。

回答例

#include <stdio.h>

int gcd(int a, int b){
        if(a==b) return a;
        else if(a>b) return gcd(a-b, b);
        else return gcd(a, b-a);
}

int main(int args, char *argv[]){
        int result = gcd(atoi(argv[1]), atoi(argv[2]));
        printf("%d", result);
        exit(0);
}