用c++ 计算一个n次多项式的值: Px,n=a0+a1X+a2x^2+...+anx^n,输入x,n,a1,a2,...,an.输出多项式 P(x,n)的值。设计算法求解,请选择合适的输入、输出格式,要求算法具有较好的时间性能。呈现代码
时间: 2024-09-24 17:13:26 浏览: 29
在C++中计算一个n次多项式的值,你可以使用递归或者迭代的方式来实现。这里我们提供一个简单的迭代算法,因为它通常比递归更高效。我们将使用数组存储系数,并遍历多项式直到达到所需的次数。
```cpp
#include <iostream>
double calculate_polynomial(double x, int n, double coefficients[]) {
// 确保n >= 0
if (n < 0) {
std::cerr << "Error: The degree of the polynomial must be non-negative." << std::endl;
return 0;
}
double result = coefficients[0]; // 初始化结果为常数项
for (int i = 1; i <= n; ++i) { // 遍历从1到n,对应x的幂次
result *= x; // 结果乘以当前x的幂
result += coefficients[i]; // 加上对应的系数
}
return result;
}
int main() {
int n;
double x;
std::cout << "Enter the degree of the polynomial and the value of x: ";
std::cin >> n >> x;
// 输入多项式的系数,假设它们已经按照升序排列并存储在一个数组中
double* coefficients = new double[n + 1];
std::cout << "Enter the coefficients of the polynomial (a0, a1, ..., an): ";
for (int i = 0; i <= n; ++i) {
std::cin >> coefficients[i];
}
double result = calculate_polynomial(x, n, coefficients);
std::cout << "The value of the polynomial P(x)=" << result << " at x=" << x << std::endl;
delete[] coefficients; // 别忘了释放内存
return 0;
}
```