給定兩個多項式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。輸入格式 總共要輸入兩個多項式,每個多項式的輸入格式如下 每行輸入兩個數字,...