用c++算出n个数内幂数的个数并求和
时间: 2025-01-23 21:14:37 浏览: 42
要用C++求出n个数内幂数的个数并求和,可以按照以下步骤进行:
1. 定义一个函数来判断一个数是否是幂数。
2. 遍历n个数,使用上述函数判断每个数是否是幂数。
3. 统计幂数的个数并求和。
以下是一个示例代码:
```cpp
#include <iostream>
#include <cmath>
// 判断一个数是否是幂数
bool isPower(int num) {
if (num <= 0) return false;
if (num == 1) return true;
for (int i = 2; i <= num; ++i) {
double power = log(num) / log(i);
if (power == (int)power) {
return true;
}
}
return false;
}
int main() {
int n;
std::cout << "请输入数字的个数: ";
std::cin >> n;
int* numbers = new int[n];
std::cout << "请输入 " << n << " 个数字: ";
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
}
int powerCount = 0;
int powerSum = 0;
for (int i = 0; i < n; ++i) {
if (isPower(numbers[i])) {
powerCount++;
powerSum += numbers[i];
}
}
std::cout << "幂数的个数: " << powerCount << std::endl;
std::cout << "幂数的和: " << powerSum << std::endl;
delete[] numbers;
return 0;
}
```
这个程序首先定义了一个函数`isPower`来判断一个数是否是幂数。然后在`main`函数中,程序读取用户输入的n个数,并使用`isPower`函数判断每个数是否是幂数,最后统计幂数的个数并求和。
阅读全文
相关推荐











