Chương trình Kotlin để kiểm tra số Armstrong

Trong chương trình này, bạn sẽ học cách kiểm tra xem một số nhất định có phải là số mạnh hay không. Bạn sẽ học cách làm điều này bằng cách sử dụng vòng lặp while trong Kotlin.

Một số nguyên dương được gọi là số Amstrong có thứ tự n nếu

abcd… = a n + b n + c n + d n +…

Trong trường hợp một số Amstrong có 3 chữ số, thì tổng các lập phương của mỗi chữ số bằng chính số đó. Ví dụ:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 là một số Amstrong. 

Ví dụ 1: Kiểm tra Số Armstrong để tìm số có 3 chữ số

 fun main(args: Array) ( val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") ) 

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

 371 là một số Armstrong.
  • Đầu tiên, giá trị của số (số) đã cho được lưu trữ trong một biến số nguyên khác, originalNumber. Điều này là do, chúng ta cần so sánh giá trị của số cuối cùng và số ban đầu ở cuối.
  • Sau đó, một vòng lặp while được sử dụng để lặp qua originalNumber cho đến khi nó bằng 0.
    • Trên mỗi lần lặp, chữ số cuối cùng của num được lưu trữ trong phần còn lại.
    • Sau đó, phần còn lại được hỗ trợ bởi 3 (số chữ số) bằng cách sử dụng Math.pow()hàm và thêm vào kết quả.
      Ở đây, phần còn lại được chuyển đổi thành Doublepowchỉ chấp nhận Doublecác tham số và giá trị của nó một lần nữa được chuyển đổi trở lạiInt
    • Sau đó, chữ số cuối cùng bị xóa khỏi Số gốc sau khi chia cho 10.
  • Cuối cùng, kết quả và số được so sánh. Nếu bằng nhau, nó là một số Armstrong. Nếu không, nó không phải là.

Đây là mã Java tương đương: Chương trình Java để kiểm tra số Armstrong

Ví dụ 2: Kiểm tra số Armstrong tìm n chữ số

 fun main(args: Array) ( val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) ( originalNumber /= 10 ++n ) originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )

Trong chương trình này, chúng tôi đã sử dụng hai vòng lặp while. Vòng lặp while đầu tiên được sử dụng để đếm số chữ số trong số.

Sau đó, originalNumber được khôi phục thành số đã cho.

Sau đó, vòng lặp while thứ hai sẽ kiểm tra xem số đó có cứng hay không.

Truy cập trang này để tìm hiểu, cách bạn có thể hiển thị tất cả các số mạnh giữa hai khoảng thời gian.

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