本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n(a[i]×xi) 在x点的值。
#include <stdio.h>
#define MAXN 10
double f(int n, double a[], double x);
int main() {
int n, i;
double a[MAXN], x;
scanf("%d %lf", &n, &x);
for (i = 0; i <= n; i++) {
scanf("%lf", &a[i]);
}
printf("%.1f\n", f(n, a, x));
return 0;
}
double quick_pow(double x, int n) {
double temp = x, ans = 1;
while (n) {
if (n % 2) {
ans = ans * temp;
}
n /= 2;
temp *= temp;
}
return ans;
}
double f(int n, double a[], double x) {
double sum = 0;
int i;
for (i = 0; i <= n; i++) {
sum = sum + (a[i] * quick_pow(x, i));
}
return sum;
}