编写算法求一元多项式的值

题目如图:

废话不多说,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <stdlib.h>
#define N 10
/* 使用迭代法重写第一次作业算法题 */
int QiuMi(int x,int a)
{
return a*x;
}
void PrintPn(int *a,int n,int x) /* 负责打印结果,以及调用求幂函数参与运算 */
{
int Pn=0,count=1;
for(int i=1;i<n;i++)
{
Pn+=(a[i]*QiuMi(x,count));//该语句一共执行n-1次
count=QiuMi(x,count);
}
Pn+=a[0];//执行1次
printf("Pn(%d)=%d\n",x,Pn);
}
int main()
{
int a[N],x;
printf("Please input %d numbers: \n",N);
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
printf("Please input X0: \n");
scanf("%d",&x);
PrintPn(a,N,x);
system("pause");
return 0;
}

程序运行结果如图:

正确答案如图: