ที่นี่เราจะเห็นโปรแกรมหนึ่งที่สามารถตรวจสอบว่าตัวเลขเป็นตัวเลขวิเศษหรือไม่ ตัวเลขเรียกว่าเลขวิเศษ เมื่อผลรวมแบบเรียกซ้ำของหลักคือ 1 สมมติว่าตัวเลขเช่น 50311 =5 + 0 + 3 + 1 + 1 =10 =1 + 0 =1 นี้คือเลขมหัศจรรย์
ในการตรวจสอบว่าเป็นตัวเลขวิเศษหรือไม่ เราต้องบวกตัวเลขนั้นจนกว่าจะถึงเลขหลักเดียว
ตัวอย่าง
#include <iostream> using namespace std; int isMagicNumber(int n) { int digit_sum = 0; while (n > 0 || digit_sum > 9) { if (n == 0) { n = digit_sum; digit_sum = 0; } digit_sum += n % 10; n /= 10; } return (digit_sum == 1); } int main() { int number = 50311; if(isMagicNumber(number)){ cout << number << " is magic number"; } else { cout << number << " is not magic number"; } }
ผลลัพธ์
50311 is magic number