Rumah  >  Artikel  >  Java  >  Faktorial di Jawa

Faktorial di Jawa

王林
王林asal
2024-08-30 16:25:37852semak imbas

Dalam artikel ini, kita akan mempelajari tentang pelbagai cara menulis kod dalam Bahasa Pengaturcaraan Java untuk tujuan Pengiraan Faktor. Menjadi salah satu Bahasa Mudah Digunakan, Berorientasikan Objek, Java, adalah Bebas Platform dan Bahasa Pengaturcaraan Mudah. Penyusun dan Jurubahasa Java dibangunkan dengan Keselamatan sebagai aspek utama. Java mempunyai pelbagai julat aplikasi.

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Faktorial, dilambangkan sebagai “!” (tanda seru), ialah operasi Matematik bagi Mendarab nombor dengan semua nombor yang lebih kecil. Sebagai contoh, jika nombornya ialah 5, output untuk faktorial ialah 5! = 5*4*3*2*1 = 120.

Bagaimana untuk Melaksanakan Program Java?

1. Lengkapkan kod anda dan simpan sebagai (nama fail).java

2. Buka Terminal dan jalankan arahan java berikut.

  • a. javac (nama fail).java

3. Perintah di atas akan menghasilkan fail kelas.

4. Sekarang, laksanakan fail kelas.

  • a. java (nama fail)

Contoh Faktorial menggunakan pelbagai Kaedah

Di bawah adalah contoh berbeza menggunakan pelbagai kaedah:

Contoh 1 – Menggunakan Kaedah Asas

Melangkah ke hadapan, kami kini akan menulis Program Java yang mudah untuk Pengiraan Faktor.

public class Factorial
{
public static void main(String args[])
{int i, fact=1;
int number=5;
for(i=1;i<=number;i++)
{
fact=fact*i;
}
System.out.println("Factorial of "+number+" is: "+fact);
}
}

Simpan kod di atas dengan sebarang nama fail dan sambungan .java.

Penjelasan Kod:

Ia bermula dengan dua pembolehubah, "i" dan "fakta," dengan nilai 1, kemudian "nombor" dengan 5, iaitu nombor kami untuk mengira faktorial. Saya pergi ke For Loop, terus meningkatkan nilai i sehingga kita memadankannya dengan nombor, iaitu 5. Semasa menambah, setiap kali nilai fakta meningkat, ia didarabkan dan fakta diberikan nilai baharu.

Output:

Faktorial di Jawa

Contoh 2 – Menggunakan Input Pengguna

Kaedah lain yang biasa digunakan ialah kami meminta nombor input pengguna untuk pengiraan dan bukannya mentakrifkannya terlebih dahulu.

Rujuk kod di bawah untuk Pengiraan Berdasarkan Input Pengguna:

import java.util.Scanner;
class Facto{
public static void main(String args[]) {
int q, a, fact = 1;
System.out.println("Please Enter a number:");
Scanner in = new Scanner(System.in);
q = in.nextInt();
if ( q < 0 )
System.out.println("Please enter a number greater than 0:");
else {
for ( a = 1 ; a <= q ; a++ )
fact = fact*a;
System.out.println("Factorial of "+q+" is = "+fact);
}
}
}

Simpan kod di atas seperti yang kita lakukan untuk contoh terdahulu.

Penjelasan Kod:

Perbezaan utama antara contoh terdahulu dan di atas ialah input pengguna; Rehat pun sama. Kod akan meminta nombor untuk dikira, kemudian jika nombor yang dimasukkan oleh pengguna adalah Negatif iaitu dalam "-", tolak, ia akan menggesa "Sila masukkan nombor yang lebih besar daripada 0:", yang jelas kerana Faktorial tidak boleh dikira untuk nombor Negatif. Sekarang, ia akan menerima nombor positif dan teruskan dengan Mengira Faktorial dan kemudian mencetak output seperti yang ditunjukkan dalam imej di bawah.

Output:

Faktorial di Jawa

Contoh 3 – Menggunakan Kaedah Rekursi

Rekursi ialah salah satu alat yang paling berguna dalam dunia pengaturcaraan. Rekursi pada asasnya bermaksud menggunakan semula fungsi. Jadi untuk mengatakan, kita tidak perlu mentakrifkan bilangan pembolehubah tambahan di sini, yang bermaksud kita hanya mempunyai dua pembolehubah atau kurang.

Sebab utama untuk melaksanakan Rekursi ialah kuasa untuk mengurangkan panjang kod dan secara elegan mengurangkan kerumitan masa sesuatu program. Kaedah rekursi, dengan kelebihannya, mempunyai beberapa kelemahan yang boleh memberi kesan besar dalam jangka masa panjang.

Keburukan

Keburukan dengan rekursi:

  • Pada asasnya, agak sukar untuk menyahpepijat kod rekursi dan mengesannya untuk sebarang langkah dengan ralat.
  • Selain daripada itu, rekursi menggunakan lebih banyak memori, kerana ia menggunakan Stack untuk menyelesaikan tugas, di mana ia terus menambah tindanan dengan panggilan rekursif yang lebih baharu.
  • Dan, jika tidak dilaksanakan dengan bijak, Rekursi boleh melambatkan fungsi.
  • StackOverflowException: Kaedah rekursif sering membuang Exception ini disebabkan penggunaan tindanan yang berlebihan.

Rujuk kod di bawah:

public class FactorialExample2 {
static int factorial(int n){
if (n == 1)
return 1;
else
return(n * factorial(n-1));
}
public static void main(String[] args) {
System.out.println("Factorial of 5 is: "+factorial(5));
}
}

Simpan dan susun atur cara seperti yang kami lakukan sebelum ini.

Penjelasan Kod:

The above code starts with a single int variable and checks if it is equal to 1; if yes, it returns one, as factorial for 1 is 1. If not equal to 1, it proceeds with the recursion function. Our int value, for example, is 5, so it’ll be like “5 * factorial(5-1)”, factorial is called here for the second time, which is another call. Then it returns again with a newer int value, which is 4, “4 * factorial(4-1)”, now it’ll be the third call to the recursion method. Now, the newer int value is 3, which means “3 * factorial(3-1)”, now it’ll be the fourth call, and the value will be 2, which means “2 * factorial(2-1)”. The int value will be one in the next recursive call, which will terminate the function here. While every call was made, its value was saved in a Stack, which is a LIFO method. So, for the final Output, the result will be “5*4*3*2*1 = 120.”

Compared to other methods, Recursion is quite difficult to understand and to implement, but if understood well and implemented wisely, it is a good tool.

Output:

Faktorial di Jawa

It is highly recommended to use Recursion only in the case where writing an iterative code can be quite complex.

Now that we have learned various methods for implementing Factorial Calculations in Java Let’s explore a Built-in function that does the same work in a single line.

Example 4 – Using built-in Function

*) IntMath

Understanding the need for arithmetic operations over a value, a few functions specific to certain value types were written, we will see the Integer type value in work.

IntMath is a class for arithmetic calculations on an int value. IntMath class comes with a range of arithmetic operations, including factorial.

Syntax:

factorial (int n)

Conclusion – Factorial in Java

We started with an introduction to java and how to run a java program. Then we learned about Factorial Calculation and various methods, including Recursion, to accomplish it.

Towards the end, we learned about IntMath; a Java Function primarily focused on Arithmetic operations. Java is a widely-used programming language; it comes with many features; in this article, we learned about Factorial Calculations in Java, which is a tiny aspect.

Atas ialah kandungan terperinci Faktorial di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Corak Nombor di JawaArtikel seterusnya:Corak Nombor di Jawa