Trong bài viết này, chúng ta sẽ tìm hiểu cách hiển thị các số Armstrong giữa hai số cho trước trong Java. 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: 370 là số Armstrong.
370 = 27 + 343 + 0
Dưới đây là minh họa:
Đầu vào
Giả sử đầu vào của chúng ta là:
1 & 500
Đầu ra
Đầu ra mong muốn sẽ là:
Các số Armstrong giữa 1 và 500 là: 1, 153, 370, 371, 407
Thuật Toán
Bước 1 - BẮT ĐẦU Bước 2 - Khai báo bốn số nguyên: my_input_1, my_input_2, i, sum Bước 3 - Nhắc người dùng nhập hai số nguyên hoặc định nghĩa số nguyên Bước 4 - Đọc giá trị Bước 5 - Chạy vòng for tạo số Armstrong dùng %, /, * toán tử Bước 6 - Chia 10 lấy dư cho 'check' Bước 7 - Nhân 'rem' ba lần, cộng vào 'sum', làm 'sum' hiện tại Bước 8 - Chia 'check' cho 10, làm 'check' hiện tạ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 ArmstrongNumbers {
public static void main(String args[]) {
int my_low, my_high, check, my_rem, my_sum, i;
Scanner my_scanner = new Scanner(System.in);
System.out.println("Các gói cần thiết đã được nhập");
System.out.println("Đối tượng scanner đã được định nghĩa");
System.out.println("Nhập số đầu tiên:");
my_low = my_scanner.nextInt();
System.out.println("Nhập giới hạn:");
my_high = my_scanner.nextInt();
System.out.println("Các số Armstrong là:");
for (i = my_low; i < my_high; i++) {
my_sum = 0;
check = i;
while (check != 0) {
my_rem = check % 10;
my_sum = my_sum + (my_rem * my_rem * my_rem);
check = check / 10;
}
if (my_sum == i) {
System.out.println(i);
}
}
}
}
Đầu Ra
Các gói cần thiết đã được nhập Đối tượng scanner đã được định nghĩa Nhập số đầu tiên: 1 Nhập giới hạn: 500 Các số Armstrong là: 1 153 370 371 407
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 ArmstrongNumbers {
public static void main(String args[]) {
int my_low, my_high, check, my_rem, my_sum, i;
my_low = 1;
my_high = 500;
System.out.printf("Số đầu tiên là %d và giới hạn là %d", my_low, my_high);
System.out.println("\nCác số Armstrong là:");
for (i = my_low; i < my_high; i++) {
my_sum = 0;
check = i;
while (check != 0) {
my_rem = check % 10;
my_sum = my_sum + (my_rem * my_rem * my_rem);
check = check / 10;
}
if (my_sum == i) {
System.out.println(i);
}
}
}
}
Đầu Ra
Số đầu tiên là 1 và giới hạn là 500 Các số Armstrong là: 1 153 370 371 407