Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java程序查找數(shù)字的階乘

Java 實例大全

在此程序中,您將學(xué)習(xí)使用Java中的for和while循環(huán)查找數(shù)字的階乘。

正數(shù)的階乘由下式n給出:

factorial of n (n!) = 1 * 2 * 3 * 4 * ... * n

示例1:使用for循環(huán)查找數(shù)字的階乘

public class Factorial {

    public static void main(String[] args) {

        int num = 10;
        long factorial = 1;
        for(int i = 1; i <= num; ++i)
        {
            // factorial = factorial * i;
            factorial *= i;
        }
        System.out.printf("Factorial of %d = %d", num, factorial);
    }
}

運行該程序時,輸出為:

Factorial of 10 = 3628800

在此程序中,我們使用for循環(huán)遍歷了1和給定數(shù)字num(10)之間的所有數(shù)字,每個數(shù)字的乘積直到num,并存儲在變量factorial中。

我們使用long而不是int來存儲階乘的大結(jié)果。但是,它仍然不夠大,不能存儲更大數(shù)字的值(比如100的階乘)

對于無法存儲在long變量中的結(jié)果,我們使用在java.math庫中聲明的BigInteger變量。

示例2:使用BigInteger查找數(shù)字的階乘

import java.math.BigInteger;

public class Factorial {

    public static void main(String[] args) {

        int num = 30;
        BigInteger factorial = BigInteger.ONE;
        for(int i = 1; i <= num; ++i)
        {
            // factorial = factorial * i;
            factorial = factorial.multiply(BigInteger.valueOf(i));
        }
        System.out.printf(" %d 的階乘  = %d", num, factorial);
    }
}

運行該程序時,輸出為:

30 的階乘 = 265252859812191058636308480000000

這里,我們用BigInteger代替long存儲階乘。

由于*不能與一起使用BigInteger,因此我們將其multiply()用于該產(chǎn)品。另外,num應(yīng)將其強(qiáng)制轉(zhuǎn)換BigInteger為乘法。

因為*不能與BigInteger一起使用,所以我們對計算使用multiply()。另外,num應(yīng)該被轉(zhuǎn)換為BigInteger以進(jìn)行乘法運算。

同樣,我們也可以使用while循環(huán)來解決此問題。

示例3:使用while循環(huán)查找數(shù)字的階乘

public class Factorial {

    public static void main(String[] args) {

        int num = 5, i = 1;
        long factorial = 1;
        while(i <= num)
        {
            factorial *= i;
            i++;
        }
        System.out.printf("%d 的階乘  = %d", num, factorial);
    }
}

運行該程序時,輸出為:

5 的階乘  = 120

在上面的程序中,與for循環(huán)不同,我們必須循環(huán)體內(nèi)增加i的值。

盡管兩個程序在技術(shù)上都是正確的,但在這種情況下最好使用for循環(huán)。這是因為迭代次數(shù)(最大為num)是已知的。

Java 實例大全

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