Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C ++에서 숫자가 마술인지 확인하십시오 (자릿수의 재귀 합이 1 임).

<시간/>

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