Dalam program ini, anda akan belajar mencari faktorial nombor menggunakan gelung untuk dan semasa di Java.
Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan Java berikut:
- Java untuk Gelung
- Java sambil dan lakukan … sambil Loop
Faktor faktor nombor positif diberikan oleh:
faktorial n (n!) = 1 * 2 * 3 * 4 *… * n
Contoh 1: Cari faktorial nombor menggunakan gelung
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); ) )
Pengeluaran
Faktor faktor 10 = 3628800
Dalam program ini, kami telah menggunakan loop untuk melengkapkan semua nombor antara 1 dan bilangan yang diberikan (10), dan produk setiap nombor hingga num disimpan dalam faktorial pemboleh ubah.
Kami telah menggunakan lama dan bukan untuk menyimpan banyak hasil faktorial. Walau bagaimanapun, ia masih belum cukup besar untuk menyimpan nilai bilangan yang lebih besar (katakan 100).
Untuk hasil yang tidak dapat disimpan dalam pemboleh ubah panjang, kami menggunakan BigInteger
pemboleh ubah yang dinyatakan di java.math
perpustakaan.
Contoh 2: Cari Factorial nombor 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); ) )
Pengeluaran
Faktor faktor 30 = 265252859812191058636308480000000
Di sini, bukannya long
, kami menggunakan BigInteger
faktorial pemboleh ubah.
Oleh kerana, *
tidak dapat digunakan dengan BigInteger
, kami sebaliknya menggunakan multiply()
produk tersebut. Num juga mesti digunakan BigInteger
untuk pendaraban.
Begitu juga, kita juga boleh menggunakan loop sementara untuk menyelesaikan masalah ini.
Contoh 3: Cari Factorial nombor menggunakan loop sementara
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); ) )
Pengeluaran
Faktor faktor 5 = 120
Dalam program di atas, tidak seperti loop untuk, kita harus meningkatkan nilai i di dalam badan gelung.
Walaupun kedua-dua program ini secara teknikal betul, lebih baik digunakan untuk gelung dalam kes ini. Ini kerana bilangan lelaran (hingga bilangan) diketahui.
Lawati halaman ini untuk belajar mencari faktor nombor menggunakan rekursi.