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 Sử Dụng Hàm


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 khoảng sử dụng hàm. 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.

371 = 27 + 343 + 1

Dưới đây là minh họa:

Đầu vào

Giả sử đầu vào của chúng ta là:

Hai đầu vào: 1 và 500

Đầu ra

Đầu ra mong muốn sẽ là:

Các số Armstrong là: 153 370 371 407

Thuật Toán

Bước 1 - BẮT ĐẦU
Bước 2 - Khai báo ba biến nguyên my_low, my_high, i
Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị
Bước 4 - Định nghĩa hàm IsArmstrong nhận số nguyên, trả về boolean
Bước 5 - Trong hàm này, chia biến đầu vào cho 10 lấy dư cho 'check'
Bước 6 - Nhân 'my_rem' ba lần, cộng vào 'my_sum', làm 'my_sum' hiện tại
Bước 7 - Chia 'check' cho 10, làm 'check' hiện tại. So sánh 'my_sum' với đầu vào 'i', trả về true/false
Bước 8 - Dùng vòng for, lặp từ my_low đến my_high, gọi hàm IsArmstrong. Nếu true, là Armstrong, lưu số
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, 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 + 1; i < my_high; ++i) {
            if (IsArmstrong(i))
                System.out.print(i + " ");
        }
    }
    public static boolean IsArmstrong(int i) {
        int check, my_rem, my_sum;
        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) {
            return true;
        }
        return false;
    }
}

Đầ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à: 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, i;
        my_low = 1;
        my_high = 500;
        System.out.println("Số bắt đầu và kết thúc được định nghĩa là " + my_low + " và " + my_high);
        System.out.println("Các số Armstrong là:");
        for (i = my_low + 1; i < my_high; ++i) {
            if (IsArmstrong(i))
                System.out.print(i + " ");
        }
    }
    public static boolean IsArmstrong(int i) {
        int check, my_rem, my_sum;
        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) {
            return true;
        }
        return false;
    }
}

Đầu Ra

Số bắt đầu và kết thúc được định nghĩa là 1 và 500
Các số Armstrong là: 153 370 371 407