题目要求输出在给定范围内的水仙花数,如果有多个,则按从小到大的顺序排列在一行内,用空格隔开。如果范围内不存在水仙花数,则输出no。每个测试实例的输出占一行的C++代码
时间: 2024-05-15 10:12:25 浏览: 55
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
bool isNarcissisticNumber(int num) {
int sum = 0, temp = num;
while (temp) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
int start, end;
bool hasNarcissisticNumber = false;
cin >> start >> end;
for (int i = start; i <= end; i++) {
if (isNarcissisticNumber(i)) {
cout << i << " ";
hasNarcissisticNumber = true;
}
}
if (!hasNarcissisticNumber) {
cout << "no";
}
return 0;
}
```
代码思路:
1. 定义一个函数 `isNarcissisticNumber`,用于判断一个数是否为水仙花数。
2. 在主函数中输入范围的起始和结束值。
3. 依次遍历范围内的每个数,如果是水仙花数则输出,并且将 `hasNarcissisticNumber` 设为 `true`。
4. 如果范围内不存在水仙花数,则输出 `no`。
阅读全文