在本教程中,我们将通过示例学习有关氘的数字。
总和pow(digit, digitsCount)等于给定数字的数字称为Deserium数字。
让我们看一下查找给定数字是否为氘数的步骤。
初始化号码。
查找数字的位数。
初始化变量以存储和。
迭代直到数字小于0。
通过将数字乘以10得到最后一位数字。
添加pow(digit, digitsCount)到总和。
如果总和等于数字,那么它是氘数,否则就不是。
让我们看一下代码。
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int getDigitsCount(int n) {
int digitsCount = 0;
do {
digitsCount++;
n = n / 10;
}
while (n != 0);
return digitsCount;
}
bool isDeseriumNumber(int n) {
int originalNumber = n;
int digitsCount = getDigitsCount(n);
int sum = 0;
while (n != 0) {
int digit = n % 10;
sum += pow(digit, digitsCount);
digitsCount--;
n = n / 10;
}
return sum == originalNumber;
}
int main() {
int n = 135;
// int n = 123;
if (isDeseriumNumber(n)) {
cout << "Yes";
}
else {
cout << "No";
}
cout << endl;
return 0;
}输出结果如果运行上面的代码,则将得到以下结果。
Yes