Dalam program ini, Anda akan belajar mencari faktorial sebuah bilangan menggunakan for dan while loop di Java.
Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:
- Java untuk Loop
- Java sementara dan melakukan… saat Loop
Faktorial dari bilangan positif n diberikan oleh:
faktorial dari n (n!) = 1 * 2 * 3 * 4 *… * n
Contoh 1: Menemukan Faktorial sebuah bilangan menggunakan for loop
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); ) )
Keluaran
Faktorial 10 = 3628800
Dalam program ini, kami telah menggunakan for loop to loop melalui semua angka antara 1 dan angka yang diberikan num (10), dan produk dari setiap angka sampai jumlah disimpan dalam variabel faktorial.
Kami telah menggunakan long bukannya int untuk menyimpan hasil besar faktorial. Namun, itu masih belum cukup besar untuk menyimpan nilai angka yang lebih besar (katakanlah 100).
Untuk hasil yang tidak dapat disimpan dalam variabel panjang, kami menggunakan BigInteger
variabel yang dideklarasikan di java.math
perpustakaan.
Contoh 2: Menemukan Faktorial sebuah bilangan menggunakan BigInteger
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("Factorial of %d = %d", num, factorial); ) )
Keluaran
Faktorial 30 = 265252859812191058636308480000000
Di sini, alih-alih long
, kami menggunakan BigInteger
faktorial variabel.
Karena, *
tidak dapat digunakan dengan BigInteger
, kami malah menggunakan multiply()
untuk produk. Juga, num harus dicor BigInteger
untuk perkalian.
Demikian juga, kita juga dapat menggunakan loop sementara untuk menyelesaikan masalah ini.
Contoh 3: Menemukan Faktorial sebuah bilangan menggunakan while loop
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("Factorial of %d = %d", num, factorial); ) )
Keluaran
Faktorial 5 = 120
Dalam program di atas, tidak seperti perulangan for, kita harus menaikkan nilai i di dalam badan perulangan.
Meskipun kedua program secara teknis benar, lebih baik menggunakan for loop dalam kasus ini. Itu karena jumlah iterasi (hingga num) diketahui.
Kunjungi halaman ini untuk belajar mencari faktorial sebuah bilangan menggunakan rekursi.