Σε αυτό το πρόγραμμα, θα μάθετε να βρίσκετε το παραγοντικό ενός αριθμού χρησιμοποιώντας και για βρόχο στο Java.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:
- Java για βρόχο
- Java ενώ και κάνουμε… ενώ Loop
Το παραγοντικό ενός θετικού αριθμού n δίνεται από:
παραγοντικό του n (n!) = 1 * 2 * 3 * 4 *… * n
Παράδειγμα 1: Βρείτε Factorial ενός αριθμού που χρησιμοποιεί το 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); ) )
Παραγωγή
Συντελεστής 10 = 3628800
Σε αυτό το πρόγραμμα, χρησιμοποιήσαμε το loop για να βρούμε όλους τους αριθμούς μεταξύ του 1 και του δεδομένου αριθμού (10) και το προϊόν κάθε αριθμού μέχρι το num αποθηκεύεται σε μια μεταβλητή παραγοντική.
Έχουμε χρησιμοποιήσει πολύ καιρό αντί για int για να αποθηκεύσουμε μεγάλα αποτελέσματα των παραγοντικών. Ωστόσο, εξακολουθεί να μην είναι αρκετά μεγάλο για να αποθηκεύσει την αξία των μεγαλύτερων αριθμών (ας πούμε 100).
Για αποτελέσματα που δεν μπορούν να αποθηκευτούν σε μια μεγάλη μεταβλητή, χρησιμοποιούμε BigInteger
μεταβλητή που δηλώνεται στη java.math
βιβλιοθήκη.
Παράδειγμα 2: Βρείτε Factorial ενός αριθμού χρησιμοποιώντας το 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); ) )
Παραγωγή
Παράγοντα 30 = 265252859812191058636308480000000
Εδώ, αντί long
, χρησιμοποιούμε BigInteger
μεταβλητή παραγοντική.
Δεδομένου ότι *
δεν μπορούμε να το χρησιμοποιήσουμε BigInteger
, αντ 'αυτού χρησιμοποιούμε multiply()
για το προϊόν. Επίσης, ο αριθμός πρέπει να μετατραπεί σε BigInteger
πολλαπλασιασμό.
Παρομοίως, μπορούμε επίσης να χρησιμοποιήσουμε έναν βρόχο για να λύσουμε αυτό το πρόβλημα.
Παράδειγμα 3: Βρείτε Factorial ενός αριθμού χρησιμοποιώντας 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); ) )
Παραγωγή
Παράγοντα 5 = 120
Στο παραπάνω πρόγραμμα, σε αντίθεση με το a for loop, πρέπει να αυξήσουμε την τιμή του i μέσα στο σώμα του loop.
Αν και τα δύο προγράμματα είναι τεχνικά σωστά, είναι προτιμότερο να χρησιμοποιηθούν για βρόχο σε αυτήν την περίπτωση. Είναι επειδή ο αριθμός της επανάληψης (μέχρι τον αριθμό) είναι γνωστός.
Επισκεφθείτε αυτήν τη σελίδα για να μάθετε να βρίσκετε παραγοντικά ενός αριθμού χρησιμοποιώντας την αναδρομή.