Computer >> Máy Tính >  >> Lập trình >> C ++

Kiểm tra xem một số có phải là ma thuật không (Tổng đệ quy của các chữ số là 1) trong C ++

Ở đây chúng ta sẽ thấy một chương trình có thể kiểm tra xem một số có phải là số ảo hay không. Một số được cho là số kỳ diệu, khi tổng đệ quy của các chữ số là 1. Giả sử một số giống như 50311 =5 + 0 + 3 + 1 + 1 =10 =1 + 0 =1, đây là số kỳ diệu.

Để kiểm tra xem một số có phải là ma thuật hay không, chúng ta phải thêm các chữ số cho đến khi đạt được một số có một chữ số.

Ví dụ

#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";
   }
}

Đầu ra

50311 is magic number