如何用C++编写程序来输出所有在特定整数范围内(m到n)的水仙花数?
时间: 2024-11-15 12:21:42 浏览: 28
水仙花数是指一个三位数,其各位数字立方和等于该数本身,例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。以下是使用C++编写的简单程序,它会找出给定范围内的所有水仙花数:
```cpp
#include <iostream>
using namespace std;
bool isWaterLily(int num) {
int cubeSum = 0;
for (int i = 0; i < 10 && num > 0; ++i) {
int digit = num % 10;
cubeSum += digit * digit * digit;
num /= 10;
}
return num == 0 && cubeSum == num;
}
void printWaterLilies(int start, int end) {
for (int i = start; i <= end; ++i) {
if (isWaterLily(i)) {
cout << i << " ";
}
}
cout << endl;
}
int main() {
int m, n;
cout << "请输入范围(起始值m到结束值n):" << endl;
cin >> m >> n;
cout << "在范围[" << m << ", " << n << "]内所有的水仙花数是:";
printWaterLilies(m, n);
return 0;
}
```
在这个程序中,`isWaterLily`函数检查输入的数是否是水仙花数,而`printWaterLilies`函数遍历指定范围并打印出符合条件的数。
阅读全文