2012年2月1日 星期三

[C/C++基礎]- 利用遞迴方式求最大公因數和求其最小公倍數

[C/C++基礎]- 利用遞迴方式求最大公因數和求其最小公倍數


 


本篇要和(C/P)同好分享利用遞迴方式求最大公因數和求其最小公倍數,有興趣的同好歡迎來(C/P)一下 ^ ^













程式碼



#include <iostream>

usingnamespace std;

/*

利用遞迴方式求最大公因數和求其最小公倍數

*/

int gcd_1(int a,int b)//求最大公因數_1_以輾轉相減法

{

    if(a==b)

        return a;

    if(a>b)

        return gcd_1(a-b,b);

    return gcd_1(a,b-a);

}

int gcd_2(int a,int b)//求最大公因數_2_以輾轉相除法

{

    int c=0;

    c=a%b;

    if(c==0)

        return b;

    return gcd_2(b,c);

}

int lcm(int a,int b)//求其最小公倍數

{

    return b/gcd_1(a,b)*a;

}

void main(void)

{

    int a,b,c;

    a=30,b=45;

    c=gcd_1(a,b);

    cout<<c<<"\t";

    c=gcd_2(a,b);

    cout<<c<<"\t";

    c=lcm(a,b);

    cout<<c<<"\t";

 

}

 





沒有留言:

張貼留言