PTA03一元多項式的乘積與和

2021-09-26 09:12:53 字數 1647 閱讀 1403

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

輸入格式:

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

參考

#include#includetypedef int elemtype;

struct poly

;struct lnode ;

typedef lnode*list;

list plus(list a, list b,list c);

list mult(list a, list b, list c);

void delete(list l, int i);

void print(list l);

void insert(int x,int m,list c)

void delete(list l, int i)

for (j = i; j <= l->last; j++)

l->last--;

}int main()

//printf("輸入多項式2的非零項的個數:\n");

scanf_s("%d", &n2);

//printf("按照指數從大到小輸入對應的係數和指數:\n");

for (int j= 0; j <= n2- 1; j++)

print(mult(a, b, d));//乘法

print(plus(a, b, c));//加法

return 0;

//plus(a,b,c,n1,n2);

}void print(list l)

for (i = 1; i <= l->last; i++)

printf("\n");

}list plus(list a, list b, list c)

else if (a->array[i].expo > b->array[j].expo)

else if (a->array[i].expo < b->array[j].expo)

}if (i <= a->last)

if(j <= b->last)

return c;

}list mult(list a, list b, list d)

}int max1, temp1, max2, temp2;

for (m = 0; m <= d->last; m++)

else if (d->array[m].expo == d->array[n].expo)

delete(d, n-1);}}

}return d;

}

求取一元多項式乘積

問題很常見 輸入為兩個一元多項式,要求輸出為兩個多項式的乘積。例如,輸入為2x2 1和5x 1,輸出為10x3 2x2 5x 1。這是我求職期間某家公司的現場程式設計題。我歷來不喜歡為了考試而去拼命做題,使得自己高分低能。而歷來我自認為分析解決能力不錯,可遇到這道題真是愣住了。當時大概想了下,無非分...

一元多項式

一元多項式 功能 1 求解2個一元多項式的和 2 求解2個一元多項式的差 3 列印一元多項式 注 3 這個本來不算是乙個功能,但是發現列印一元多項式的時候問題很多。例如 1x應該列印成 x,x 0不應該應該列印出來 1.結點的定義 typedef struct polynomial polynomi...

一元多項式

include include using namespace std 定義結構體 typedef struct polynode polynode,polylist 建立關於多項式結構體的單鏈表,以係數0結束輸入 polylist polycreate 尾插法建立單鏈表 rear next nul...