题目:
本题要求实现一个函数,计算阶数为n,系数为a[0] … a[n]的多项式 在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 f( int n, double a[], double x )
{
double sum= 0;//最终返回值
double t = 1; //来计算x幂次方的变量
for(int i=0; i<=n; i++)
{
sum += a[i] * t;
t *= x;
}
return sum;
}
心得:
此题不难,关键在于幂次方怎么不使用math库里的pow()函数,而巧妙放在循环里。
这里的思路是设置一个变量t,初始值为1(x^0=1),之后每循环一次,都将i的值乘以x,这样巧妙实现了幂次方。