OJ 多項式加法

2022-09-20 08:45:09 字數 2120 閱讀 1832

複習了一下stl,寫完才想起來可以用map,**量*3,orz

提交時遇到一次presentation error,oj的空格輸出實在是太隨性。

思路是分別對兩組輸入進行排序,再通過k1,k2兩個迭代器匯入新的容器

注意:容器為空時,begin()與end()返回相同

容器為空與容器不為空時,begin()返回不一致

需要進行操作的多項式中,存在0(即輸入僅包含乙個係數和乙個負項數,如:9 -7)和多組相同冪數的情況(12 7 -7 5 3 17 23 4 15 10 -10 5 13 5 2 19 9 -7)

vectora, b;

vector

::const_iterator k1, k2;

if (a.begin() == a.end()) //

輸出1 cout << '1'

;

else

cout

<< '0'

;

if (a.begin() == b.begin()) //

輸出1 cout << '1'

;

else

cout

<< '0'

; k1 =a.begin();

a.push_back(5);

k2 =a.begin();

if (k1 == k2) //

輸出0 cout << '1'

;

else

cout

<< '

0';

view code

1 #include 2 #include 3 #include 4

using

namespace

std;

5class poly

10 poly(int a, int

b): coe(a), item(b){}

11 friend bool

operator

< (const poly &, const poly &);

12 friend poly operator + (const poly &, const poly &);

13};

14bool

operator

< (const poly &a, const poly &b)

20 poly operator + (const poly &a, const poly &b)

23void insert_num(vector&x)33}

34int

main()

56else

if ((*k1).item > (*k2).item)

63else

71}72else

if (k1 < p1.end() && k2 ==p2.end())81}

82else

if (k1 == p1.end() && k2

92else

93break;94

}95for (k3 = p3.begin(); k3 < p3.end(); k3++)

99 cout <

100p1.clear();

101p2.clear();

102p3.clear();

103}

104return0;

105 }

map版本:

1 #include 2 #include 3

using

namespace

std;

4int

main()17}

18 map::reverse_iterator k; //

reverse_iterator反向迭代,正向迭代使用const_iterator

19for (k = pl.rbegin(); k != pl.rend(); k++)

24 cout <

25pl.clear();26}

27return0;

28 }

多項式加法

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

多項式加法

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

多項式加法

給定兩個多項式p x 與q x 通過鍊錶實現它們的加法。有若干組,每組有2個多項式。每組輸入時先輸入第1個多項式,再輸入第2個多項式。每組用若干對整數表示,依序每兩個相鄰的整數表示多項式的一項,分別是它的係數和冪。當輸入的冪為負數時,表示乙個多項式的結束。乙個多項式中各項的次序是隨機的。對每組中兩個...