PAT基礎程式設計題目集——6-2 多項式求值
阿新 • • 發佈:2018-11-24
原題目:
本題要求實現一個函式,計算階數為n
,係數為a[0]
... a[n]
的多項式f(x)=∑i=0n(a[i]×xi) 在x
點的值。
函式介面定義:
double f( int n, double a[], double x );
其中n
是多項式的階數,a[]
中儲存係數,x
是給定點。函式須返回多項式f(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; } /* 你的程式碼將被嵌在這裡 */
輸入樣例:
2 1.1
1 2.5 -38.7
輸出樣例:
-43.1
分析 :
1.由陣列儲存的係數可通過for或while迴圈呼叫,對於階數的乘法,可使用pow()函式來讓運算更為簡單
pow()函式的用法→pow(x,y) x的y次方
2.注意值的型別是int 還是double
程式碼:
double f( int n, double a[], double x )
{
int i;
double sum=0.0;
for(i=0;i<=n;i++)
{
sum+=a[i]*pow(x,i);
}
return sum;
}