编写一个c++代码查找一个数的水仙花数和个数
时间: 2024-09-26 09:08:59 浏览: 25
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。编写一个C++程序来查找所有小于一定范围内的水仙花数并计算它们的数量,你可以这样做:
```cpp
#include <iostream>
#include <vector>
bool is_armstrong_number(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return num == sum;
}
int find_armstrong_numbers(int limit) {
int count = 0;
for (int i = 100; i <= limit; ++i) {
if (is_armstrong_number(i)) {
count++;
std::cout << i << " ";
}
}
return count;
}
int main() {
int range;
std::cout << "请输入一个整数范围上限: ";
std::cin >> range;
int water_lily_count = find_armstrong_numbers(range);
std::cout << "\n在给定范围内有 " << water_lily_count << " 个水仙花数。\n";
return 0;
}
```
这个程序首先定义了一个函数`is_armstrong_number`用于检查一个数是否为水仙花数,然后在`find_armstrong_numbers`函数中遍历指定范围内的每个数,并计数水仙花数。最后,在`main`函数中获取用户输入的范围并打印结果。
阅读全文