在 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
广告