C 多項式的乘法和加法

2021-10-04 03:41:00 字數 2144 閱讀 5317

採用動態陣列的方法

該方法較鏈式方法略微複雜

#include

using

namespace std;

//多項式的乘法和加法

struct node

;//****排序****

void

nodesort

(node* pn,

const

int& count)}}

}}//****輸出****

void

print

( node *s,

const

int& n)

cout<}//****合併同類項****

intnodemerge

(node* s,

const

int& n ,

const

int& key=0)

if(n==1)

return1;

if(n>

1&& key==0)

else

}return count+1;

}if(n>

1&&key==1)

else

}return count+1;

}}//***計算多項式加法***

void

add(node* s,

const

int& m,node* a,

const

int& n)

else

if(s[i]

.exp.exp)

else

}while

(iwhile

(jtemp =

nodemerge

(newnode,temp,1)

; cout<<

"多項式加法\n"

;print

(newnode,temp)

;delete

newnode;

return;}

//***計算多項式乘法***

void

multi

(node* s,

const

int& m,node* a,

const

int& n)

}//***排序並且合併***

count =

nodemerge

(pn,count,0)

; cout<<

"多項式乘法\n"

;print

(pn,count)

;delete

pn;

return;}

//****輸入資料*****

node*

node_input

(const

int& n)

return seq;

}//***銷毀****

void

delete_node

(node*s)

//**測試**

intmain()

樣例測試輸出

input m value:31

2132

4input n value:43

53763

425*

****

****output***

****

**2x^4

+1x^3+

1x^2**

****

***output***

****

**3x^76

+5x^5+

3x^4

多項式乘法**

****

***output***

****

**6x^80

+3x^79+

3x^78

+10x^9+

11x^8+

8x^7

+3x^

6多項式加法**

****

***output***

****

**3x^76

+5x^5+

5x^4

+1x^3+

1x^2

多項式加法 乘法

學校acm上面的題目,題目不難,不少細節。本質就是鍊錶操作,首先是題目要求 輸入 兩組資料,每一組代表乙個一元整係數多項式,有多行組成,其中每一行給出多項式每一項的係數和指數,這些行按指數遞減次序排序,每一組結束行為 0 1 輸出 三組資料,前兩組為一元整係數多項式,最後一組為兩個多項式的和。一元整...

多項式加法

題目內容 乙個多項式可以表達為x的各次冪與係數乘積的和,比如 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。程式要處理的冪最大為100。輸入格式 總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,第乙個表示冪次,第二個表示該冪次的係數...

多項式加法

題目內容 乙個多項式可以表達為x的各次冪與係數乘積的和,比如 2x6 3x5 12x3 6x 20 現在,你的程式要讀入兩個多項式,然後輸出這兩個多項式的和,也就是把對應的冪上的係數相加然後輸出。程式要處理的冪最大為100。輸入格式 總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,...