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

Chương trình Java kiểm tra số Armstrong giữa hai số nguyên


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

Số nguyên 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³ + ...

Với số Armstrong 3 chữ số, tổng lập phương các chữ số bằng chính nó. Ví dụ: 153 là số Armstrong.

153 = 1³ + 5³ + 3³

Ví dụ khác: 371.

371 = 27 + 343 + 1

Giả sử ta muốn các số Armstrong giữa hai số. Minh họa:

Đầu vào

Giả sử đầu vào:

1 & 500

Đầu ra

Kết quả mong đợi:

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 4 số nguyên: my_input_1, my_input_2, i, sum
Bước 3 - Nhập hai số từ người dùng hoặc định nghĩa trước
Bước 4 - Đọc giá trị
Bước 5 - Chạy vòng lặp for sinh số Armstrong dùng %, /, *
Bước 6 - Chia 10 lấy dư cho 'check'
Bước 7 - Nhân 'rem' 3 lần, cộng vào 'sum', gán lại cho 'sum'
Bước 8 - Chia 'check' cho 10, gán lại cho 'check'
Bước 9 - Hiển thị kết quả
Bước 10 - DỪNG

Ví dụ 1: Nhập từ bàn phím

Người dùng nhập dựa trên lời nhắc. Thử trực tiếp trong coding ground.

import java.util.Scanner;
public class ArmstrongNumbers {
    public static void main(String args[]) {
        int input_1, input_2, check, rem, sum, i;
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("Required packages have been imported");
        System.out.println("A scanner object has been defined");
        System.out.println("Enter the first number:");
        input_1 = my_scanner.nextInt();
        System.out.println("Enter the limit:");
        input_2 = my_scanner.nextInt();
        System.out.println("The Armstrong numbers are:");
        for (i = input_1; i < input_2; i++) {
            sum = 0;
            check = i;
            while (check != 0) {
                rem = check % 10;
                sum = sum + (rem * rem * rem);
                check = check / 10;
            }
            if (sum == i) {
                System.out.println(i);
            }
        }
    }
}

Đầu ra

Required packages have been imported
A scanner object has been defined
Enter the first number: 1
Enter the limit: 500
The Armstrong numbers are:
1
153
370
371
407

Ví dụ 2: Giá trị định nghĩa trước

Hai số đã được định nghĩa trước.

public class ArmstrongNumbers {
    public static void main(String args[]) {
        int input_1, input_2, check, rem, sum, i;
        input_1 = 1;
        input_2 = 500;
        System.out.printf("The first number is %d and the limit is %d", input_1, input_2);
        System.out.println("\nThe Armstrong numbers are:");
        for (i = input_1; i < input_2; i++) {
            sum = 0;
            check = i;
            while (check != 0) {
                rem = check % 10;
                sum = sum + (rem * rem * rem);
                check = check / 10;
            }
            if (sum == i) {
                System.out.println(i);
            }
        }
    }
}

Đầu ra

The first number is 1 and the limit is 500
The Armstrong numbers are:
1
153
370
371
407