Σε αυτό το πρόγραμμα, θα μάθετε να βρίσκετε το παραγοντικό ενός αριθμού χρησιμοποιώντας για και κατά τη διάρκεια του βρόχου στο Kotlin. Θα μάθετε επίσης να χρησιμοποιείτε εύρη για την επίλυση αυτού του προβλήματος.
Το παραγοντικό ενός θετικού αριθμού n δίνεται από:
παραγοντικό του n (n!) = 1 * 2 * 3 * 4 *… * n
Παράδειγμα 1: Βρείτε Factorial ενός αριθμού που χρησιμοποιεί το loop
fun main(args: Array) ( val num = 10 var factorial: Long = 1 for (i in 1… num) ( // factorial = factorial * i; factorial *= i.toLong() ) println("Factorial of $num = $factorial") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Συντελεστής 10 = 3628800
Σε αυτό το πρόγραμμα, χρησιμοποιήσαμε το loop για να βρούμε όλους τους αριθμούς μεταξύ του 1 και του δεδομένου αριθμού (10) και το προϊόν κάθε αριθμού μέχρι το num αποθηκεύεται σε μια μεταβλητή παραγοντική.
Σε αντίθεση με την Java, στο Kotlin, μπορείτε να χρησιμοποιήσετε εύρη ( 1… num
) και στον χειριστή για να μετακινηθείτε μεταξύ αριθμών από 1 έως num.
Επίσης, χρησιμοποιήσαμε πολύ καιρό αντί για int για να αποθηκεύσουμε μεγάλα αποτελέσματα παραγοντικών
Ωστόσο, εξακολουθεί να μην είναι αρκετά μεγάλο για να αποθηκεύσει την αξία των μεγαλύτερων αριθμών (ας πούμε 100). Για αποτελέσματα που δεν μπορούν να αποθηκευτούν σε μια μεγάλη μεταβλητή, χρησιμοποιούμε BigInteger
μεταβλητή που δηλώνεται στη java.math
βιβλιοθήκη.
Εδώ είναι ο αντίστοιχος κώδικας Java: Πρόγραμμα Java για εύρεση παράγοντα ενός αριθμού.
Παράδειγμα 2: Βρείτε Factorial ενός αριθμού χρησιμοποιώντας το BigInteger
import java.math.BigInteger fun main(args: Array) ( val num = 30 var factorial = BigInteger.ONE for (i in 1… num) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(num.toLong())) ) println("Factorial of $num = $factorial") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Παράγοντα του 30 = 205891132094649000000000000000000000000000000
Εδώ, αντί long
, χρησιμοποιούμε BigInteger
μεταβλητή παραγοντική.
Δεδομένου ότι *
δεν μπορούμε να το χρησιμοποιήσουμε BigInteger
, αντ 'αυτού χρησιμοποιούμε multiply()
για το προϊόν. Επίσης, ο αριθμός πρέπει να μετατραπεί σε BigInteger
πολλαπλασιασμό.
Παρομοίως, μπορούμε επίσης να χρησιμοποιήσουμε έναν βρόχο για να λύσουμε αυτό το πρόβλημα.
Παράδειγμα 3: Βρείτε Factorial ενός αριθμού χρησιμοποιώντας while loop
fun main(args: Array) ( val num = 5 var i = 1 var factorial: Long = 1 while (i <= num) ( factorial *= i.toLong() i++ ) println("Factorial of $num = $factorial") )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Παράγοντα 5 = 120
Στο παραπάνω πρόγραμμα, σε αντίθεση με το a for loop, πρέπει να αυξήσουμε την τιμή του i μέσα στο σώμα του loop.
Αν και τα δύο προγράμματα είναι τεχνικά σωστά, είναι προτιμότερο να χρησιμοποιηθούν για βρόχο σε αυτήν την περίπτωση. Είναι επειδή ο αριθμός της επανάληψης (μέχρι τον αριθμό) είναι γνωστός.
Επισκεφθείτε αυτήν τη σελίδα για να μάθετε να βρίσκετε παραγοντικά ενός αριθμού χρησιμοποιώντας την αναδρομή.