a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

遞歸法求最大公約數和最小公倍數的實現代碼

2020-01-26 16:15:38
字體:
來源:轉載
供稿:網友


       數學原理:

       設有兩個數num1和num2,假設num1比較大。令余數r = num1 % num2。
       當r == 0時,即num1可以被num2整除,顯然num2就是這兩個數的最大公約數。
       當r != 0時,令num1 = num2(除數變被除數),num2 = r(余數變除數),再做 r = num1 % num2。遞歸,直到r == 0。
       以上數學原理可以用具體的兩個數做一下分析,這樣容易理解。

代碼實現(求最大公約數):

復制代碼 代碼如下:

#include <iostream>
using namespace std;

int gcd(int a, int b);//聲明最大公約數函數

int main()
{
    int num1 = 1;
    int num2 = 1;   
    cin >> num1 >> num2;
    while(num1 == 0 || num2 == 0)//判斷是否有0值輸入,若有則重新輸入
    {
        cout << "input error !" << endl;
        cin >> num1 >> num2;
    }
    cout << "The gcd of " << num1 << " and " << num2 << " is: " << gcd(num1, num2) << endl;//調用最大公約數函數
    return 0;
}

int gcd(int a, int b)//函數定義
{
    int max = a > b ? a : b;
    int min = a < b ? a : b;
    a = max;
    b = min;
    int r = a % b;
    if(0 == r)//若a能被b整除,則b就是最大公約數。
        return b;
    else
        return gcd(b, r);//遞歸   
}


最小公倍數的求法建立在求最大公約數的方法之上。因為最小公倍數等于兩個數的積除以最大公約數。

代碼實現(求最小公倍數):
復制代碼 代碼如下:

#include <iostream>
using namespace std;

int gcd(int a, int b);//聲明最大公約數函數

int main()
{
    int num1 = 1;
    int num2 = 1;   
    int lcm = 1;
    cin >> num1 >> num2;
    while(num1 == 0 || num2 == 0)//判斷是否有0值輸入,若有則重新輸入
    {
        cout << "input error !" << endl;
        cin >> num1 >> num2;
    }
    lcm = num1 / gcd(num1, num2) * num2;//先除后乘可以在一定程度上防止大數
    cout << "The lcm of " << num1 << " and " << num2 << " is: " << lcm << endl;
    return 0;
}

int gcd(int a, int b)//函數定義
{
    int max = a > b ? a : b;
    int min = a < b ? a : b;
    a = max;
    b = min;
    int r = a % b;
    if(0 == r)//若a能被b整除,則b就是最大公約數。
        return b;
    else
        return gcd(b, r);//遞歸   
}


以上是僅僅限與求兩個書的最大公約數和最小公倍數,當數字有很多時,該法是否依然適用,還有待考證。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 成人国产精品久久久 | 亚洲这里只有精品 | 国产精品久久国产精品99 gif | 精品久久av| 日本精品一区二区三区在线观看视频 | 亚洲国产一级 | 日韩精品一区二区在线观看 | 91欧美激情一区二区三区成人 | 色播99| 欧美日本一区视频免费 | 国产精品二区一区二区aⅴ污介绍 | 久久久成人网 | 精品国产123 | 免费99精品国产自在在线 | 超碰激情 | 久久99精品久久久 | 少妇精品久久久久久久久久 | 午夜在线 | 日韩欧美一区二区三区久久婷婷 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 精品一区二区三区免费毛片爱 | 网址你懂的在线观看 | 午夜在线电影 | 四虎网站在线观看 | 中文在线一区 | 精品一二三区 | 国产精品永久免费视频 | 国产美女在线免费 | 国产中文在线 | 欧美日韩中文字幕在线 | 欧美日韩一区免费 | 久草网址 | 黄网站涩免费蜜桃网站 | 成人蜜桃视频 | 欧美精品一区二区三区在线播放 | 国产成人精品一区二区 | 欧美午夜一区 | 国产99久久精品 | 亚洲 欧美 精品 | 中文字幕一二三区 | 日本中文字幕一区 |