一元多項式

2021-09-07 15:28:37 字數 1602 閱讀 2647

一元多項式

功能:1>.求解2個一元多項式的和

2>.求解2個一元多項式的差

3>.列印一元多項式

注:3>這個本來不算是乙個功能,但是發現列印一元多項式的時候問題很多。例如:-1x應該列印成-x,x^0不應該應該列印出來

1.結點的定義

typedef struct polynomial 

polynomial;

2.多項式的建立(尾插法)

polynomial *create_list()

printf("建立完成!\n");

return phead;

}

3.多項式求和

polynomial *addpolyn(polynomial *pa,polynomial *pb)

else if(qa->expn>qb->expn)

else

if(qc->coef!=null)

else

free(qc);

} while(qa!=null)

while(qb!=null)

return chead;

}

設計思路:

1>.當qa與qb結點都不為空時,將結點qx->expn較小的結點賦給qc,並且將qc採用尾插法連線給pc;

相等時,qa與qb進行運算,將結果賦給qc並且將qc採用尾插法連線給pc

2>.當qa為空時,將pb中未遍歷的結點逐一複製連線在pc後面

3>.當qa為空時,將pb中未遍歷的結點逐一複製連線在pc後面

4.多項式求差

polynomial *subpolyn(polynomial *pa,polynomial *pb)

headc=addpolyn(pa,pb);

p=pb->next;

while(p!=null)

return headc;

}

設計思路: 

1>.由於要實現多項式pc-pb,可以考慮將多項式pb的每一項的係數*-1;

2>.呼叫求和函式

3>.恢復多項式pb,將多項式pb的每一項的係數*-1

5.列印多項式

說明:原本以為這只是乙個很簡單的列印函式,但是卻是花的時間最長的。。。。。。。因為考慮的東西稍微有點多

int print_list(polynomial *phead)

else

else

if(p->coef==-1)

}p=p->next;

flag=1;

} }

printf("\n");

return 1;

}

設計思路:

1.首先區分列印的是不是多項式的第乙個數,因為當多項式的第乙個數為整數時不應該列印"+"號,其餘的應該列印"+"號

2.其次,因該分為三種情況

1>.多項式的係數不為-1&&+1;

2>.多項式的係數不為-1

3>.多項式的係數不為-1

在以上三種情況的基礎上必須討論多項式x的指數是不是為0;

一元多項式

include include using namespace std 定義結構體 typedef struct polynode polynode,polylist 建立關於多項式結構體的單鏈表,以係數0結束輸入 polylist polycreate 尾插法建立單鏈表 rear next nul...

一元多項式求導

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 設計函式求一元多項式的導數。輸入格式 以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出格式 以與輸入相同的格式輸出導數多項式非零項的係數和指數。數...

一元多項式求積

乙個一元多項式可以看作由若干個一元單項式按降冪排列成的線性表。請編寫程式對輸入的兩個一元多項式求積,並輸出求積的結果。輸入為兩個一元多項式,每個一元多項式輸入一行,按照降冪依次輸入每個單項式的係數和指數,並以 1 1作為結束。係數和指數均為整數,指數不小於0。輸出為求積結果多項式,按照降冪依次輸出每...