定义函数,判断1个数是否为水仙花数,是,则返回1,不是,返回0。在main函数内,输入1个数,调用已定义的函数,并输出结果。
时间: 2023-09-30 13:06:03 浏览: 87
以下是对应的代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int isNarcissisticNumber(int num) {
int sum = 0, digit;
int temp = num;
int n = 0;
while (temp != 0) {
temp /= 10;
n++;
}
temp = num;
while (temp != 0) {
digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
if (sum == num) {
return 1;
} else {
return 0;
}
}
int main() {
int num;
cout << "请输入一个数:";
cin >> num;
if (isNarcissisticNumber(num)) {
cout << num << " 是水仙花数" << endl;
} else {
cout << num << " 不是水仙花数" << endl;
}
return 0;
}
```
在这个实现中,我们定义了一个 `isNarcissisticNumber` 函数来判断一个数是否为水仙花数,它的输入参数是 `num`,也就是需要判断的数,返回值是 1 表示是水仙花数,返回值是 0 表示不是水仙花数。
在 `isNarcissisticNumber` 函数内部,我们首先计算出数字的位数 `n`,然后使用一个 `while` 循环将每一位数字的 n 次方相加,得到一个 `sum` 的值。最后通过判断 `sum` 是否等于 `num` 来确定是否为水仙花数。
在主函数 `main` 中,我们首先输入需要判断的数字,然后调用 `isNarcissisticNumber` 函数,并输出结果。
阅读全文