算法设计
[绪论-1.20] 试编写算法求一元多项式的值Pn(x),并确定算法中每一语句的执行次数和整个算法的时间复杂度。注意选择你认为较好的输入和输出方法。本题的输入为ai(i=0,1,…,n),x0和n,输出为Pn(x0)。
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
int Compute(int x, int n, int* arr) {
int sum = 0;
if (n <= 0) {
exit(1);
}
int tempx = 1;
for (int i = 0; i <= n; i++) {
tempx *= x;
if (i == 0) {
tempx = 1;
}
sum += arr[i] * tempx;
}
return sum;
}
int main() {
int x, n;
scanf_s("%d %d", &x, &n);
int* arr = (int*)malloc(sizeof(int) * (n + 1));
for (int i = 0; i <= n; i++) {
scanf_s("%d", &arr[i]);
}
int temp = Compute(x, n, arr);
printf("%d\n", temp);
free(arr);
scanf_s("%d", &x);
return 0;
}