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

โปรแกรม Java ตรวจสอบเลขอาร์มสตรอง (Armstrong Number)


ในบทความนี้ เราจะทำความเข้าใจวิธีตรวจสอบว่าเลขใดเลขหนึ่งเป็น เลขอาร์มสตรอง (Armstrong Number) หรือไม่

นิยาม: เลขอาร์มสตรองคือเลขที่เท่ากับผลรวมของเลขยกกำลังสามของตัวเลขแต่ละหลักของมันเอง

สูตร: สำหรับเลข 3 หลัก abc → a³ + b³ + c³ = abc

ตัวอย่าง: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓

ตัวอย่าง: 371 = 3³ + 7³ + 1³ = 27 + 343 + 1 = 371 ✓

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

Input:

Enter the number : 407

Output:

407 is an Armstrong number

อัลกอริธึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศตัวแปร int 4 ตัว: my_input, my_temp, my_remainder, my_result
ขั้นตอนที่ 3 - อ่านค่าจากผู้ใช้ หรือกำหนดค่าเริ่มต้น
ขั้นตอนที่ 4 - ใช้ลูป while ตรวจสอบเลขอาร์มสตรองด้วย %, /, *
ขั้นตอนที่ 5 - หาร 10 เอาเศษ (remainder) สำหรับตรวจสอบ
ขั้นตอนที่ 6 - ยกกำลัง 3 ของเศษ บวกเข้า sum
ขั้นตอนที่ 7 - หาร check ด้วย 10 วนซ้ำ
ขั้นตอนที่ 8 - เปรียบเทียบผลรวมกับตัวเลขต้นฉบับ
ขั้นตอนที่ 9 - แสดงผลลัพธ์
ขั้นตอนที่ 10 - หยุด

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

import java.util.Scanner;
public class IsArmstrong {
    public static void main(String[] args) {
        int my_input, my_temp, my_remainder, my_result;
        my_result = 0;
        System.out.println("Required packages have been imported");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("A reader object has been defined");
        System.out.print("Enter the number : ");
        my_input = my_scanner.nextInt();
        my_temp = my_input;
        while (my_temp != 0) {
            my_remainder = my_temp % 10;
            my_result += Math.pow(my_remainder, 3);
            my_temp /= 10;
        }
        if (my_result == my_input)
            System.out.println(my_input + " is an Armstrong number");
        else
            System.out.println(my_input + " is not an Armstrong number");
    }
}

Output

Required packages have been imported
A reader object has been defined
Enter the number : 407
407 is an Armstrong number

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

public class IsArmstrong {
    public static void main(String[] args) {
        int my_input, my_temp, my_remainder, my_result;
        my_input = 407;
        my_result = 0;
        System.out.println("The number is defined as " + my_input);
        my_temp = my_input;
        while (my_temp != 0) {
            my_remainder = my_temp % 10;
            my_result += Math.pow(my_remainder, 3);
            my_temp /= 10;
        }
        if (my_result == my_input)
            System.out.println(my_input + " is an Armstrong number");
        else
            System.out.println(my_input + " is not an Armstrong number");
    }
}

Output

The number is defined as 407
407 is an Armstrong number