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

เขียนโปรแกรม C# ตรวจสอบเลขอาร์มสตรอง (Armstrong Number)

เลขอาร์มสตรอง (Armstrong Number) คืออะไร?

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

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

อัลกอริทึมการตรวจสอบ

  1. เก็บตัวเลขต้นฉบับไว้เปรียบเทียบ
  2. วนลูปหาเศษ (Remainder) ของแต่ละหลักโดยหาร 10
  3. นำเศษมายกกำลัง 3 แล้วบวกสะสม
  4. หารตัวเลขด้วย 10 เพื่อตัดหลักสุดท้ายออก
  5. ทำซ้ำจนกว่าตัวเลขจะเหลือ 0
  6. เปรียบเทียบผลรวมกับตัวเลขต้นฉบับ

โค้ดตัวอย่างสมบูรณ์

using System;

namespace ArmstrongNumber {
    class Program {
        static void Main(string[] args) {
            Console.Write("ป้อนตัวเลข: ");
            int num = Convert.ToInt32(Console.ReadLine());
            
            int originalNum = num;
            int sum = 0;
            
            while (num > 0) {
                int rem = num % 10;           // หาเศษ (หลักสุดท้าย)
                sum += rem * rem * rem;       // ยกกำลัง 3 และบวกสะสม
                num /= 10;                    // ตัดหลักสุดท้ายออก
            }
            
            if (sum == originalNum) {
                Console.WriteLine("{0} เป็นเลขอาร์มสตรอง!", originalNum);
            } else {
                Console.WriteLine("{0} ไม่ใช่เลขอาร์มสตรอง!", originalNum);
            }
            
            Console.ReadKey();
        }
    }
}

ตัวอย่างผลลัพธ์

ป้อนตัวเลข: 153
153 เป็นเลขอาร์มสตรอง!

ป้อนตัวเลข: 370
370 เป็นเลขอาร์มสตรอง!

ป้อนตัวเลข: 123
123 ไม่ใช่เลขอาร์มสตรอง!

เลขอาร์มสตรองที่พบบ่อย (3 หลัก)

  • 153 = 1³ + 5³ + 3³
  • 370 = 3³ + 7³ + 0³
  • 371 = 3³ + 7³ + 1³
  • 407 = 4³ + 0³ + 7³

ขยายความ: n-Digit Armstrong Number

สำหรับเลข n หลัก ให้ยกกำลัง n แทนที่จะเป็นกำลัง 3:

// สำหรับเลข 4 หลัก เช่น 1634
// 1⁴ + 6⁴ + 3⁴ + 4⁴ = 1 + 1296 + 81 + 256 = 1634