编写一个C++函数,判断一个数是否为水仙花数
时间: 2024-03-20 13:42:12 浏览: 59
好的,下面是判断一个数是否为水仙花数的C++函数:
```c++
bool isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
// 计算每一位的立方和
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
// 判断是否为水仙花数
if (sum == num) {
return true;
} else {
return false;
}
}
```
这个函数接收一个整数作为参数 `num`,计算 `num` 的每一位的立方和,并和 `num` 比较是否相等,如果相等则返回 `true`,否则返回 `false`。
相关问题
C++编写一个函数,判断某一个数是否为水仙花数。(水仙花数:一个三位数的各位数字的立方和等于该数本身)
以下是C++代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
int num;
cout << "请输入一个三位数: ";
cin >> num;
if (isNarcissisticNumber(num)) {
cout << num << "是水仙花数" << endl;
} else {
cout << num << "不是水仙花数" << endl;
}
return 0;
}
```
首先定义一个 `isNarcissisticNumber` 函数,接收一个整数参数 `num`,用于判断该数是否为水仙花数。在函数中,我们使用循环依次取出该数的每一位数字,计算各位数字的立方和,最后将计算结果与原数比较,如果相等则返回 `true`,否则返回 `false`。
在 `main` 函数中,我们首先从用户输入中获取一个三位数,然后调用 `isNarcissisticNumber` 函数进行判断,最后输出判断结果。
c++“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。要求编写一个判断水仙花数的函数,在主函数调用该函数判断某个数是否为水仙花数并在主函数中输出所有的水仙花数
好的,以下是 C++ 的代码实现:
```cpp
#include <iostream>
using namespace std;
bool is_narcissistic_number(int num) {
/*
判断一个三位数是否为水仙花数
*/
int digit1 = num / 100; // 百位数
int digit2 = num % 100 / 10; // 十位数
int digit3 = num % 10; // 个位数
return num == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
}
int main() {
// 输出所有的水仙花数
for (int i = 100; i < 1000; i++) {
if (is_narcissistic_number(i)) {
cout << i << endl;
}
}
return 0;
}
```
你可以运行这段代码查看输出结果。
阅读全文