Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra xem một số cho trước có phải là số Armstrong hay không. Số Armstrong là số bằng tổng lập phương các chữ số của chính nó.
Một số nguyên được gọi là số Armstrong bậc n nếu tách từng chữ số, lập phương và cộng lại thì tổng bằng chính số đó: abcd... = a³ + b³ + c³ + d³ + ...
Trong trường hợp số Armstrong 3 chữ số, tổng lập phương các chữ số bằng chính số đó. Ví dụ: 153 là số Armstrong.
153 = 1³ + 5³ + 3³
Ví dụ khác: 371 là số Armstrong.
Dưới đây là minh họa:
Đầu vào
Giả sử đầu vào của chúng ta là:
Nhập số: 407
Đầu ra
Đầu ra mong muốn sẽ là:
407 là số Armstrong
Thuật Toán
Bước 1 - BẮT ĐẦU Bước 2 - Khai báo bốn biến nguyên my_input, my_temp, my_remainder, my_result Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị Bước 4 - Chạy vòng while để kiểm tra số Armstrong bằng %, / và * toán tử Bước 5 - Chia 10 và lấy dư cho 'check' Bước 6 - Nhân 'rem' ba lần, cộng vào 'sum', làm 'sum' hiện tại Bước 7 - Chia 'check' cho 10, làm 'check' hiện tại. Lưu giá trị kết quả Bước 8 - Nếu giá trị kết quả bằng giá trị đầu vào, đó là số Armstrong, ngược lại không phải Bước 9 - Hiển thị kết quả Bước 10 - DỪNG
Ví Dụ 1
Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở. Bạn có thể thử ví dụ này trực tiếp trong công cụ coding ground của chúng tôi.
import java.util.Scanner;
public class IsArmstrong {
public static void main(String[] args) {
int my_input, my_temp, my_remainder, my_result;
my_result = 0;
System.out.println("Các gói cần thiết đã được nhập");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Đối tượng đọc đã được định nghĩa");
System.out.print("Nhập số: ");
my_input = my_scanner.nextInt();
my_temp = my_input;
while (my_temp != 0) {
my_remainder = my_temp % 10;
my_result += Math.pow(my_remainder, 3);
my_temp /= 10;
}
if (my_result == my_input)
System.out.println(my_input + " là số Armstrong");
else
System.out.println(my_input + " không phải số Armstrong");
}
}
Đầu Ra
Các gói cần thiết đã được nhập Đối tượng đọc đã được định nghĩa Nhập số: 407 407 là số Armstrong
Ví Dụ 2
Ở đây, số nguyên đã được định nghĩa trước, và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.
public class IsArmstrong {
public static void main(String[] args) {
int my_input, my_temp, my_remainder, my_result;
my_input = 407;
my_result = 0;
System.out.println("Số được định nghĩa là " + my_input);
my_temp = my_input;
while (my_temp != 0) {
my_remainder = my_temp % 10;
my_result += Math.pow(my_remainder, 3);
my_temp /= 10;
}
if (my_result == my_input)
System.out.println(my_input + " là số Armstrong");
else
System.out.println(my_input + " không phải số Armstrong");
}
}
Đầu Ra
Số được định nghĩa là 407 407 là số Armstrong