เลข Armstrong (Narcissistic number) คือเลขที่ผลรวมของแต่ละหลักยกกำลังจำนวนหลัก เท่ากับเลขนั้นเอง
ตัวอย่าง: 153 มี 3 หลัก → 1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ✓
อัลกอริทึม (สำหรับเลข 3 หลัก)
for (int i = val; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem * rem * rem;
}
ตัวอย่างโค้ดเต็ม
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class ApplicationNew {
static void Main(string[] args) {
int val = 153, sum = 0;
int rem;
for (int i = val; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem * rem * rem;
}
if (sum == val) {
Console.Write("Armstrong Number");
} else {
Console.Write("Not an Armstrong Number");
}
Console.ReadLine();
}
}
}
ผลลัพธ์
Armstrong Number
เวอร์ชันทั่วไป (ทุกจำนวนหลัก):
int digits = val.ToString().Length;
int temp = val, sum = 0;
while (temp > 0) {
int digit = temp % 10;
sum += (int)Math.Pow(digit, digits);
temp /= 10;
}