Chương trình Java để 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 for và vòng lặp while trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Java while và do… while Loop
  • Câu lệnh Java if… else
  • Java cho Vòng lặp

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ố

 public class Armstrong ( public static void main(String() args) ( int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) ( remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Đầu ra

 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ả.
    • 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, đó là một số Armstrong. Nếu không, nó không phải là.

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

 public class Armstrong ( public static void main(String() args) ( int number = 1634, originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (;originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (;originalNumber != 0; originalNumber /= 10) ( remainder = originalNumber % 10; result += Math.pow(remainder, n); ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Đầu ra

 1634 là một số Armstrong.

Trong chương trình này, thay vì sử dụng vòng lặp while, chúng tôi đã sử dụng hai vòng lặp for.

Vòng lặp for đầu tiên được sử dụng để đếm số chữ số trong số. Nó là dạng cô đọng của:

 for (; originalNumber! = 0; originalNumber / = 10) (n ++;)

Sau đó, vòng lặp for thứ hai sẽ tính toán kết quả trong đó trên mỗi lần lặp, phần còn lại được cung cấp bởi số chữ số n.

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...