编写算法求一元多项式的值P n (x)=∑ i=0 n a i x i 的值P n (x 0 )。 注意:不要使用内置的求幂函数,例如C中的pow()、Python中的**等 输入格式: 第一行为一个整数n和一个浮点数x 0 。其中0≤n≤30,000,表示多项式次数;x 0 为多项式中的变量x的取值。 第二行为空格分割的n+1个浮点数,由高到低表示多项式中项的系数。 可以假设输入总是合法的。
时间: 2024-03-25 21:39:01 浏览: 153
可以使用Horner算法来求解一元多项式的值Pn(x)。Horner算法的思想是将多项式分解成一系列因式的乘积,每个因式都是形如(x-xi)的一次多项式,其中xi是常数。使用Horner算法的关键是将多项式表示成这种形式。
具体地,我们可以将一元多项式表示成以下形式:
Pn(x) = (((anx + an-1)x + an-2)x + ... + a1)x + a0
然后我们从最内层括号开始计算,逐步向外层括号展开,就可以得到Pn(x)的值。
C++代码如下:
```c++
#include <iostream>
using namespace std;
const int N = 3e4 + 10;
int n;
double x0, a[N];
int main()
{
cin >> n >> x0;
for (int i = 0; i <= n; i ++) cin >> a[i];
double ans = a[n];
for (int i = n - 1; i >= 0; i --)
ans = ans * x0 + a[i];
printf("%.1lf\n", ans);
return 0;
}
```
Python代码如下:
```python
n, x0 = map(float, input().split())
a = list(map(float, input().split()))
ans = a[-1]
for i in range(n - 1, -1, -1):
ans = ans * x0 + a[i]
print("{:.1f}".format(ans))
```
阅读全文