Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương Trình Java Hiển Thị Số Armstrong Giữa Hai Khoảng


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