在这里,我们将看到一个程序,该程序可以检查数字是否为幻数。当数字的递归总和为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