打印水仙花数及个数 n (水仙花数是三位数,每位数字的立方和等于这个数本身示)。c++
时间: 2024-10-13 15:05:39 浏览: 87
在C++中,我们可以编写一个循环来查找所有的水仙花数。水仙花数是指一个三位数,它的每个位上的数字的三次方之和等于它自身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。以下是实现这一功能的一个简单程序:
```cpp
#include <iostream>
using namespace std;
bool isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i <= num; ++i) {
if (num % i == 0) {
sum += pow(i, 3); // 求每一位的立方并累加
}
}
return sum == num; // 判断是否等于原数
}
int countPerfectNumbers(int n) {
int count = 0;
for (int i = 100; i <= n; ++i) {
if (isPerfectNumber(i)) {
cout << i << " 是一个水仙花数。\n";
++count;
}
}
return count;
}
int main() {
int limit;
cout << "请输入一个整数 n 来查找所有小于或等于 n 的水仙花数: ";
cin >> limit;
int perfectCount = countPerfectNumbers(limit);
cout << "在给定范围内,有 " << perfectCount << " 个水仙花数。\n";
return 0;
}
```
在这个程序中,`isPerfectNumber()` 函数用于判断一个数是否为水仙花数,而`countPerfectNumbers()`函数则遍历指定范围内的所有三位数,找出并打印出水仙花数,同时统计它们的数量。
阅读全文