多項式加法

2021-07-13 19:14:44 字數 1482 閱讀 4362

給定兩個多項式p(x)與q(x),通過鍊錶實現它們的加法。

有若干組,每組有2個多項式。每組輸入時先輸入第1個多項式,再輸入第2個多項式。每組用若干對整數表示,依序每兩個相鄰的整數表示多項式的一項,分別是它的係數和冪。當輸入的冪為負數時,表示乙個多項式的結束。乙個多項式中各項的次序是隨機的。

對每組中兩個多項式,先輸出「case #:」,其中「#」是測試資料序號。接著在下面三行上分別輸出這兩多項式,以及這兩多項式的和。要求按降冪排列輸出多項式的各項,每一項用(a,n)對的形式,其中a是係數,n是冪。相鄰兩對之間無空格。係數為零的項不輸出。對零多項式,只輸出0。

-1 2 3 -1 1 2 2 -1

-2 2 4 4 3 -1 2 2 6 1 5 -1

case 1:

(-1,2)

(1,2)

0 case 2:

(4,4)(-2,2)

(2,2)(6,1)

(4,4)(6,1)

#include 

#include

#include

using

namespace

std;

int main()

s1[k] += n;

s3[k] += n;

k1[++num1] = k;

k3[++num3] = k;

}sort(k1, k1 + num1+1);

for (j = 0; j < 1000; ++j)

s2[k] += n;

s3[k] += n;

k2[++num2] = k;

k3[++num3] = k;

}sort(k2, k2 + num2+1);

sort(k3, k3 + num3+1);

flag = 0;

for (int x = num1; x >= 0; --x)

else

if (k1[x] != k1[x+1])

}if (flag == 0)

cout

<< endl;

flag = 0;

for (int x = num2; x >= 0; --x)

else

if (k2[x] != k2[x+1])

}if (flag == 0)

cout

<< endl;

flag = 0;

for (int x = num3; x >= 0; --x)

else

if (k3[x] != k3[x+1])

}if (flag == 0)

cout

<< endl;

}return

0;}

這題目我沒用鍊錶,直接用陣列來寫的,,但是程式好長啊!!一時半會也不知道如何改進,先寫一篇部落格做個記錄。邏輯用的就是最普通的。

多項式加法

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

多項式加法

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

多項式加法

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