Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

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

Java 實(shí)例大全

在此程序中,您將學(xué)習(xí)在Java程序查找兩個(gè)數(shù)字的最大公因數(shù)(GCD)。這是通過(guò)在if else語(yǔ)句的幫助下使用for和while循環(huán)來(lái)完成的。

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

示例1:使用for循環(huán)和if語(yǔ)句查找兩個(gè)數(shù)字的最大公因數(shù)

public class GCD {

    public static void main(String[] args) {

        int n1 = 81, n2 = 153, gcd = 1;

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

        System.out.printf(" %d 和 %d 的最大公因數(shù)是 %d", n1, n2, gcd);
    }
}

運(yùn)行該程序時(shí),輸出為:

81 和 153 的最大公因數(shù)是 9

在此,將要找到其最大公因數(shù)的兩個(gè)數(shù)字分別存儲(chǔ)在n1和n2中。

然后,執(zhí)行for循環(huán),直到i小于n1和n2為止。這樣,迭代1到兩個(gè)數(shù)字中最小的所有數(shù)字以找到最大公因數(shù)。

如果n1和n2都可被i整除,則將gcd設(shè)置為數(shù)字。 一直進(jìn)行到找到最大數(shù)(GCD),該數(shù)將n1和n2均除而無(wú)余數(shù)。

我們還可以使用while循環(huán)解決此問(wèn)題,如下所示:

示例2:使用while循環(huán)和if else語(yǔ)句查找兩個(gè)數(shù)字的GCD

public class GCD {

    public static void main(String[] args) {

        int n1 = 81, n2 = 153;

        while(n1 != n2)
        {
            if(n1 > n2)
                n1 -= n2;
            else
                n2 -= n1;
        }

        System.out.println("G.C.D = " + n1);
    }
}

運(yùn)行該程序時(shí),輸出為:

G.C.D = 9

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

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

示例3:正負(fù)數(shù)均為GCD

public class GCD {

    public static void main(String[] args) {

        int n1 = 81, n2 = -153;

        n1 = ( n1 > 0) ? n1 : -n1;
        n2 = ( n2 > 0) ? n2 : -n2;

        while(n1 != n2)
        {
            if(n1 > n2)
                n1 -= n2;
            else
                n2 -= n1;
        }

        System.out.println("G.C.D = " + n1);
    }
}

運(yùn)行該程序時(shí),輸出為:

G.C.D = 9

Java 實(shí)例大全

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