3 6 一元多項式的乘法與加法運算 20分

2021-10-03 08:52:34 字數 1328 閱讀 9359

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

輸入格式:

輸入分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

ac**:

#include

#include

#include

using namespace std;

struct node s1[1010], s2[1010];

int arr[1000010], num;

int len1, len2;

void fun1()

p[s1[i].b + s2[j].b] += s1[i].a * s2[j].a; }}

sort(arr, arr + num);

int flag1 = 0, flag2 = 0;

for (int i = num - 1; i >= 0; i--)

if (p[arr[i]])

else

}if (flag1 == 0)

cout << endl;

return;void fun2()

p[s1[i].b] += s1[i].a;

}for (i = 1; i <= len2; i++)

p[s2[i].b] += s2[i].a;

}if (num== 0)

sort(arr, arr + num);

int flag1 = 0, flag2 = 0;

for (int i = num - 1; i >= 0; i--)

if (p[arr[i]])

else

}if (flag1 == 0)

return;int main()

cin >> len2;

for (i = 1; i <= len2; i++)

num = 0;

fun1();

num = 0;

fun2();

//system("pause");

return 0;

習題3 6 一元多項式的乘法與加法運算

這道題是乙個很好的練習c語言指標操作的題目 加法類似與歸併操作,比較大小即可 乘法轉化為加法即可,並且可以直接用加法定義的函式,還是很舒服的。問題 希望有人能告訴我這些申請的結點要不要手動釋放,以後來看吧。include include typedef struct polynode poly st...

一元多項式的乘法與加法運算

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

一元多項式的乘法與加法運算

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