Chương trình Kotlin để tìm giai thừa của một số

Trong chương trình này, bạn sẽ học cách tìm giai thừa của một số bằng vòng lặp for và while trong Kotlin. Bạn cũng sẽ học cách sử dụng phạm vi để giải quyết vấn đề này.

Giai thừa của một số dương n được cho bởi:

 giai thừa của n (n!) = 1 * 2 * 3 * 4 *… * n 

Ví dụ 1: Tìm giai thừa của một số bằng vòng lặp for

 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") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Giai thừa của 10 = 3628800

Trong chương trình này, chúng tôi đã sử dụng vòng lặp for để lặp qua tất cả các số từ 1 đến số đã cho num (10) và tích của mỗi số cho đến khi num được lưu trữ trong một giai thừa biến đổi.

Không giống như Java, trong Kotlin, bạn có thể sử dụng dãy ( 1… num) và toán tử in để lặp qua các số từ 1 đến num.

Ngoài ra, chúng tôi đã sử dụng long thay vì int để lưu trữ các kết quả lớn của giai thừa.

Tuy nhiên, nó vẫn không đủ lớn để lưu trữ giá trị của những con số lớn hơn (giả sử 100). Đối với các kết quả không thể được lưu trữ trong một biến dài, chúng tôi sử dụng BigIntegerbiến được khai báo trong java.maththư viện.

Đây là mã Java tương đương: Chương trình Java để Tìm giai thừa của một số.

Ví dụ 2: Tìm giai thừa của một số bằng 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") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Giai thừa của 30 = 205891132094649000000000000000000000000000000

Ở đây, thay vì long, chúng tôi sử dụng BigIntegergiai thừa biến.

Vì, *không thể được sử dụng với BigInteger, thay vào đó chúng tôi sử dụng multiply()cho sản phẩm. Ngoài ra, num phải được ép kiểu để BigIntegernhân.

Tương tự như vậy, chúng ta cũng có thể sử dụng vòng lặp while để giải quyết vấn đề này.

Ví dụ 3: Tìm giai thừa của một số bằng vòng lặp while

 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") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Giai thừa của 5 = 120

Trong chương trình trên, không giống như vòng lặp for, chúng ta phải tăng giá trị của i bên trong phần thân của vòng lặp.

Mặc dù cả hai chương trình đều đúng về mặt kỹ thuật, nhưng tốt hơn là sử dụng vòng lặp for trong trường hợp này. Đó là vì số lần lặp (tối đa num) đã được biết.

Truy cập trang này để tìm hiểu cách tìm giai thừa của một số bằng cách sử dụng đệ quy.

thú vị bài viết...