ในบทความนี้ เราจะเรียนรู้วิธีหาเลขอาร์มสตรองระหว่าง 2 ตัวเลขในภาษา Java เลขอาร์มสตรอง (Armstrong Number) คือเลขที่เท่ากับผลรวมของกำลังสามของหลักตัวเอง
ตัวอย่าง
153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓
371 = 3³ + 7³ + 1³ = 27 + 343 + 1 = 371 ✓
407 = 4³ + 0³ + 7³ = 64 + 0 + 343 = 407 ✓
ตัวอย่างการทำงาน
อินพุต:
1 & 500
เอาต์พุต:
Armstrong numbers between 1 and 500 are: 1, 153, 370, 371, 407
อัลกอริทึม
- เริ่มต้นโปรแกรม
- ประกาศตัวแปร:
input_1, input_2, check, rem, sum, i - รับค่าช่วงเริ่มต้นและสิ้นสุดจากผู้ใช้ หรือกำหนดค่าไว้ล่วงหน้า
- วนลูป
forจาก input_1 ถึง input_2 - แยกแต่ละหลักด้วย % 10 และ / 10 คำนวณกำลังสามบวกสะสม
- เปรียบเทียบผลรวมกับตัวเลขเดิม
- แสดงผลลัพธ์
- จบโปรแกรม
ตัวอย่างที่ 1: รับค่าจากผู้ใช้
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);
}
}
}
}
ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า
public class ArmstrongNumbers {
public static void main(String args[]) {
int input_1 = 1, input_2 = 500, check, rem, sum, i;
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);
}
}
}
}
Armstrong Numbers 3 หลัก (1-999)
มีทั้งหมด 5 ตัว: 1, 153, 370, 371, 407