c++输入输入一组正整数(三位的数),以-1结束,判断是否“水仙花数”,如果是打印yes,否则打印no(所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。)
时间: 2024-02-22 17:59:35 浏览: 66
下面是实现该功能的C++代码:
```c++
#include <iostream>
using namespace std;
bool isShuiXianHua(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
int num;
cin >> num;
while (num != -1) {
if (isShuiXianHua(num)) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
cin >> num;
}
return 0;
}
```
代码中的 `isShuiXianHua` 函数用于判断一个数字是否是水仙花数。它通过循环取出该数字的各个位上的数字,将各位数字的立方和累加到 `sum` 中,最后判断 `sum` 是否等于该数字本身。
在 `main` 函数中,我们首先读入一个数字 `num`,然后通过循环不断读入下一个数字并判断是否为水仙花数,直到读入 -1 为止。如果某个数字是水仙花数,则输出 "yes",否则输出 "no"。
阅读全文