麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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热浪潮 | 国产艳妇av视国产精选av一区 | 久久久久久久爱 | 国产视频在线观看免费 | 黄色片网站免费在线观看 | 龙床上的呻吟高h | jizzjizzjizzjizz国产 | 黄污免费网站 | 一边吃奶一边摸下娇喘 | 国产资源在线播放 | www.理论片| 成人福利视频 | 国产jjizz一区二区三区视频 | 鲁人人人鲁人人鲁精品 | 亚洲日本韩国在线观看 | 羞羞视频在线免费 | 久久久精品综合 | 成人在线视频在线观看 | 国产精品久久久免费看 | 国产精品久久久毛片 | 国产黄色网| 黄色av网站免费 | 中文成人在线 | 成人福利视频在线观看 | 视频久久免费 | 三人弄娇妻高潮3p视频 | 欧美18xxxx| 欧美爱爱一区二区 | 午夜小网站 | 亚洲成人国产 | 欧美 国产 亚洲 卡通 综合 | 久久一区国产 | 久久亚洲视频网 | 国产精品久久久久久久久久久久午夜 | 伊人网站 | 日本a在线观看 | 国产91porn| 国产青草网 | 久久免费精品视频 | 一区二区三区日韩精品 | 国产成人午夜高潮毛片 |