C++:1-10000的水仙花数
时间: 2024-08-13 20:10:28 浏览: 63
水仙花数( narcissistic number)是指一个三位数或四位数,其各位数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C++中,你可以编写一个简单的程序来找出1到10000范围内的所有水仙花数。这里有一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
bool isNarcissistic(int num) {
int sum = 0;
int temp = num;
// 对每个位提取出来
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 计算立方和
temp /= 10;
}
// 如果sum等于num,则是水仙花数
return sum == num;
}
int findNarcissisticNumbers(int start, int end) {
std::vector<int> narcissists;
for (int i = start; i <= end; ++i) {
if (isNarcissistic(i)) {
narcissists.push_back(i);
}
}
return narcissists;
}
int main() {
int rangeStart = 1, rangeEnd = 10000;
std::vector<int> narcissisticInRange = findNarcissisticNumbers(rangeStart, rangeEnd);
std::cout << "水仙花数在1到10000之间的有:\n";
for (int num : narcissisticInRange) {
std::cout << num << " ";
}
std::cout << "\n";
阅读全文