欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

【C語(yǔ)言】:輸入兩個(gè)正整數(shù)并找出它們的最大公約數(shù)-創(chuàng)新互聯(lián)

*********************************************************************************

創(chuàng)新互聯(lián)憑借專(zhuān)業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專(zhuān)業(yè)的網(wǎng)站策劃、成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都十載的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都近千家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。

導(dǎo)言:本人也是一位小白,有錯(cuò)誤的地方請(qǐng)各位大佬指出,我便修改,這是我的第一篇博客寫(xiě)得不好請(qǐng)見(jiàn)諒。

下面介紹兩種方法->

*********************************************************************************

    • 減一比較法(當(dāng)然這是我自己命名的hhh~)

代碼如下:

#include#include//system("pause");的頭文件

 int main ()
{
    int i = 0, j = 0;
    int temp = 0;
    printf("請(qǐng)輸入兩個(gè)正整數(shù):>");
    scanf("%d,%d",&i,&j);
        if(i >j)
    {
        temp = j;
    }
        else
    {
        temp = i;
    }

        for(temp; temp>0; temp--)
    {
        if(((i % temp) == 0) && ((j % temp) ==0))
        {
            printf("大公約數(shù)是:%d\n",temp);
            break;
        }
    }
    system("pause");//卡住生成的窗口方便觀察結(jié)果
    return 0;
}

此方法的原理:將輸入的兩個(gè)數(shù)中較小的一個(gè)數(shù)給到一個(gè)中間變量用作for循環(huán),以此來(lái)自減,在減的過(guò)程中會(huì)把這個(gè)數(shù)拿給輸入時(shí)的兩個(gè)數(shù)進(jìn)行取余運(yùn)算,若輸入時(shí)的數(shù)均取余得到0就說(shuō)明此時(shí)的中間變量的值就是輸入的兩個(gè)數(shù)的大公約數(shù)。(因?yàn)檩^小的那個(gè)數(shù)自減的話比較大的那個(gè)數(shù)提高了效率,大公約數(shù)顧名思義是輸入兩個(gè)正整數(shù)均所能整除的大數(shù))

當(dāng)然這樣的代碼很是繁瑣,看起來(lái)一大堆,所以為大家準(zhǔn)備了第二種方法。

第二種方法也是大家上學(xué)時(shí)學(xué)過(guò)的“歐幾里得算法”也就是輾轉(zhuǎn)相除法,這屬于算法的一種了。

先解釋一下原理吧:

  • 輾轉(zhuǎn)相除法原理:先輸入a和b進(jìn)行取余(a%b,不管先后順序),若為0則說(shuō)明a和b的大公約數(shù)為b;若不為0則繼續(xù)把b的值賦值給a,把前面取余得到的數(shù)賦值給b,然后繼續(xù)取余判斷a和b(a%b,不管先后順序)是否等于0,若為0則說(shuō)明大公約數(shù)就是b的值,若不為0則繼續(xù)把b的值賦值給a,把前面取余的數(shù)賦值給b,然后繼續(xù)判斷a和b取余(a%b,不管先后順序)看是否等于0,如此循環(huán)。直到a%b==0了就說(shuō)明b為a與b之間的大公約數(shù)。

前面說(shuō)到”減一法“的代碼比較繁瑣而這里卻更繁瑣,這里時(shí)為了大家更好的理解,下面會(huì)有優(yōu)化的代碼的,請(qǐng)各位看官稍安勿躁哦!

代碼如下:

#include#include//system("pause");的頭文件

 int main ()
{
    int i = 0, j = 0;
    int min = 0;
    int max =0;
    printf("請(qǐng)輸入兩個(gè)正整數(shù):>");
    scanf("%d,%d",&i,&j);
    if(i >j)
    {
        min = j;
        max = i;
    }
    else
    {
        min = i;
        max = j;
    }
    while(1)
    {
        if((max % min) == 0)
        {
            printf("大公約數(shù)是:>%d\n",min);
            break;
        }
        else
        {
            int num = min;
            min = max % min;
            max = num;
        }
    }
    system("pause");//卡住生成的窗口方便觀察結(jié)果
    return 0;
}
  • 注意:輾轉(zhuǎn)相除法不需要把更大的數(shù)放前面,因?yàn)樵摲椒ň邆洹白詣?dòng)”把大的數(shù)換到前面去。

既然說(shuō)到了可以不論順序,所以我們吧這算法優(yōu)化一下

#include#include//system("pause");的頭文件

 int main ()
{
    int i = 0, j = 0;
    int num =0;
    printf("請(qǐng)輸入兩個(gè)正整數(shù):>");
    scanf("%d,%d",&i,&j);
    while(num=(i%j))
    {
        i = j;
        j = num;
    }
    printf("大公約數(shù)是:%d\n",j);
    system("pause");//卡住生成的窗口方便觀察結(jié)果
    return 0;
}

這里就很簡(jiǎn)潔啦,相信大家也理解得差不多了吧!!!

我把代碼運(yùn)行輸出一下吧!

最后希望大家指出我的問(wèn)題!

謝謝各位看官的光臨,點(diǎn)點(diǎn)贊吧!!!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)標(biāo)題:【C語(yǔ)言】:輸入兩個(gè)正整數(shù)并找出它們的最大公約數(shù)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://chinadenli.net/article26/gcgjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站小程序開(kāi)發(fā)網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站設(shè)計(jì)服務(wù)器托管移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)