C 語(yǔ)言基礎(chǔ)教程

C 語(yǔ)言流程控制

C 語(yǔ)言函數(shù)

C 語(yǔ)言數(shù)組

C 語(yǔ)言指針

C 語(yǔ)言字符串

C 語(yǔ)言結(jié)構(gòu)體

C 語(yǔ)言文件

C 其他

C 語(yǔ)言參考手冊(cè)

C程序查找兩個(gè)數(shù)字的最大公因數(shù)(GCD)

C 語(yǔ)言編程實(shí)例大全

使用循環(huán)和決策語(yǔ)句以不同方式計(jì)算兩個(gè)整數(shù)(正整數(shù)和負(fù)整數(shù))的最大公因數(shù)的示例。

要理解此示例,您應(yīng)該了解以下C語(yǔ)言編程主題:

兩個(gè)整數(shù)的HCF或GCD(最大公因數(shù))是可以精確地將兩個(gè)數(shù)相除(沒(méi)有余數(shù))的最大整數(shù)。

在C編程中,有很多方法可以找到最大公約數(shù)。

例1:最大公因數(shù)使用for循環(huán)和if語(yǔ)句

#include <stdio.h>
int main()
{
    int n1, n2, i, gcd;

    printf("輸入兩個(gè)整數(shù): ");
    scanf("%d %d", &n1, &n2);

    for(i=1; i <= n1 && i <= n2; ++i)
    {
        // 檢查i是否是兩個(gè)整數(shù)的因數(shù)
        if(n1%i==0 && n2%i==0)
            gcd= i;
    }

    printf("G.C.D of %d and %d is %d", n1, n2, gcd);

    return 0;
}

在這個(gè)程序中,用戶輸入的兩個(gè)整數(shù)存儲(chǔ)在變量n1和n2中。然后循環(huán)for,直到i小于n1和n2。

在每次迭代中,如果n1和n2都可以被i整除,則將i的值分配給gcd。

當(dāng)for循環(huán)完成時(shí),兩個(gè)數(shù)的最大公約數(shù)被存儲(chǔ)在變量gcd中。

示例2:最大公因數(shù)使用while循環(huán)和if ... else語(yǔ)句

#include <stdio.h>
int main()
{
    int n1, n2;
    
    printf("輸入兩個(gè)正整數(shù): ");
    scanf("%d %d",&n1,&n2);

    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("最大公因數(shù) = %d",n1);

    return 0;
}

輸出結(jié)果

輸入兩個(gè)正整數(shù): 81
153
最大公因數(shù) = 9

這是找到最大公因數(shù)的更好方法。在此方法中,從較大的整數(shù)中減去較小的整數(shù),然后將結(jié)果分配給保存較大整數(shù)的變量。這個(gè)過(guò)程一直持續(xù)到n1和n2相等。

僅當(dāng)用戶輸入正整數(shù)時(shí),以上兩個(gè)程序才能按預(yù)期工作。這是第二個(gè)示例的一些修改,可以找到正整數(shù)和負(fù)整數(shù)的最大公因數(shù)。

例3:正負(fù)數(shù)均為最大公因數(shù)

#include <stdio.h>
int main()
{
    int n1, n2;

    printf("輸入兩個(gè)整數(shù): ");
    scanf("%d %d",&n1,&n2);

    // 如果用戶輸入的是負(fù)數(shù),則該數(shù)字的符號(hào)將更改為正數(shù)
    n1 = ( n1 > 0) ? n1 : -n1;
    n2 = ( n2 > 0) ? n2 : -n2;

    while(n1!=n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
    printf("最大公因數(shù) = %d",n1);

    return 0;
}

輸出結(jié)果

輸入兩個(gè)整數(shù): 81
-153
最大公因數(shù) = 9

您還可以使用遞歸來(lái)查找最大公因數(shù)。

C 語(yǔ)言編程實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清