?? 2.39.c
字號:
◆2.39③ 試對稀疏多項式Pn(x)采用存儲量同多項式項
數(shù)m成正比的順序存儲結(jié)構(gòu),編寫求Pn(x0)的算法(x0為
給定值),并分析你的算法的時間復(fù)雜度。
實現(xiàn)下列函數(shù):
float Evaluate(SqPoly pn, float x);
/* pn.data[i].coef 存放ai, */
/* pn.data[i].exp存放ei (i=1,2,...,m) */
/* 本算法計算并返回多項式的值。不判別溢出。 */
/* 入口時要求0≤e1<e2<...<em,算法內(nèi)不對此再作驗證*/
多項式的順序存儲結(jié)構(gòu):
typedef struct {
int coef;
int exp;
} PolyTerm;
typedef struct {
PolyTerm *data;
int length;
} SqPoly;
float Evaluate(SqPoly pn, float x)
/* pn.data[i].coef 存放ai, */
/* pn.data[i].exp存放ei (i=1,2,...,m) */
/* 本算法計算并返回多項式的值。不判別溢出。 */
/* 入口時要求0≤e1<e2<...<em,算法內(nèi)不對此再作驗證*/
{
PolyTerm *q;
int ex; //t用于記錄多項式每一項系數(shù)外的部分
float sum,t=1; //ex用于和每一項指數(shù)部分比較
q=pn.data;
sum=0;ex=0;
while(q->coef)
{
while(ex<q->exp)
{t*=x;ex++;}
sum+=q->coef*t;
q++;
}
return sum;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -