02 線性結構2 一元多項式的乘法與加法運算

2021-09-07 09:54:44 字數 2651 閱讀 4325

設計函式分別求兩個一元多項式的乘積與和。

輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。零多項式應輸出0 0

4 3 4 -5 2  6 1  -2 0

3 5 20 -7 4 3 1

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1

5 20 -4 4 -5 2 9 1 -2 0

序號

輸入輸出

14 3 4 -5 2 6 1 -2 0 

3 5 20 -7 4 3 1

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1 

5 20 -4 4 -5 2 9 1 -2 0

22 1 2 1 0

2 1 2 -1 0

1 4 -1 0

2 23

2 -1000 1000 1000 0

2 1000 1000 -1000 0

-1000000 2000 2000000 1000 -1000000 0

0 04

01 999 1000

0 0999 1000

/*

! * \file 02-線性結構2 一元多項式的乘法與加法運算.cpp

* * \author ranjiewen

* \date 2017/03/19 16:11

* * */

//動態陣列實現較好

//用鍊錶設計

#include

#include

typedef

struct polynode*polynomial;

struct

polynode;

polynomial readpoly();

polynomial mult(polynomial p1,polynomial p2);

void

printpoly(polynomial pp);

polynomial add(polynomial p1,polynomial p2);

int main() //

程式框架搭建

//對rear指標的處理:1.初值為null,根據是否為空做不同處理;2.指向乙個空節點

//*prear當前結果表示式尾項指標的指標

//函式實現在prear後面插入節點

void attach(int c, int e, polynomial *prear)

polynomial readpoly()

t =p;

p = p->next;

free(t); //

刪除臨時生成的頭結點

returnp;}

polynomial add(polynomial p1, polynomial p2)

t1 = t1->next;

t2 = t2->next;

}else

if (t1->expon>t2->expon)

else

}while

(t1)

while

(t2)

t =p;

p = p->next;

free

(t);

returnp;}

//多項式乘法方法:

//1. 將乘法運算轉換為加法運算,讓p1的每一項和p2相乘,在加到結果多項式中

//2. 逐項插入,將p1當前項乘p2當前項,在插入到結果表示式中,關鍵是要找到插入的位置

polynomial mult(polynomial p1, polynomial p2)

t1 =p1;

t2 =p2;

p = (polynomial)malloc(sizeof(struct

polynode));

rear =p;

while

(t2)

t1 = t1->next;

while

(t1)

if (rear->next&&rear->next->expon==e)

else

//為0刪除節點

}else

//插入位置

t2 = t2->next;

}t1 = t1->next;

}t2 =p;

p = p->next;

free

(t2);

returnp;}

void

printpoly(polynomial p)

while

(p)

else

printf(

"%d %d

", p->coef, p->expon);

p = p->next;

}printf("\n

");}

reference:[pat] 02-線性結構2 一元多項式的乘法與加法運算

02 線性結構2 一元多項式的乘法與加法運算

02 線性結構2 一元多項式的乘法與加法運算 20 分 設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零...

02 線性結構2 一元多項式的乘法與加法運算

02 線性結構2 一元多項式的乘法與加法運算 20 分 設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零...

02 線性結構2 一元多項式的乘法與加法運算

設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...