여기서 숫자가 매직 넘버인지 여부를 확인할 수 있는 하나의 프로그램을 볼 수 있습니다. 숫자의 재귀 합이 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