Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java แสดงเลขอาร์มสตรองระหว่าง 2 จำนวน (Armstrong Numbers Between Two Intervals)


ในบทความนี้ เราจะทำความเข้าใจวิธี แสดงเลขอาร์มสตรองระหว่าง 2 จำนวนที่กำหนด โดยไม่ใช้ฟังก์ชันแยก (Inline Logic)

ตัวอย่าง Input และ Output

Input:

1 & 500

Output:

The Armstrong numbers between 1 and 500 are 1, 153, 370, 371, 407

อัลกอริธึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศตัวแปร my_input_1, my_input_2, i, sum, check, rem
ขั้นตอนที่ 3 - อ่านค่าจากผู้ใช้ หรือกำหนดค่าเริ่มต้น
ขั้นตอนที่ 4 - วนลูป for จาก my_low ถึง my_high
ขั้นตอนที่ 5 - ในลูป: คำนวณผลรวมหลักยกกำลัง 3 ด้วย while (check != 0) { rem = check%10; sum += rem³; check/=10; }
ขั้นตอนที่ 6 - ถ้า sum == i แสดงว่าเป็น Armstrong พิมพ์ออกมา
ขั้นตอนที่ 7 - แสดงผลลัพธ์
ขั้นตอนที่ 8 - หยุด

ตัวอย่างที่ 1: รับค่าจากผู้ใช้

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("Required packages have been imported");
        System.out.println("A scanner object has been defined");
        System.out.println("Enter the first number :");
        my_low = my_scanner.nextInt();
        System.out.println("Enter the limit :");
        my_high = my_scanner.nextInt();
        System.out.println("The Armstrong numbers are :");
        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);
            }
        }
    }
}

Output

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

ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า

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("The first number is %d and the limit is %d ", my_low, my_high);
        System.out.println("\nThe Armstrong numbers are :");
        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);
            }
        }
    }
}

Output

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