一元多项式的乘法与加法运算(20 分)
2017-11-01 09:45
302 查看
7-2 一元多项式的乘法与加法运算(20 分)
设计函数分别求两个一元多项式的乘积与和。
输入格式:
输入分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<stdio.h> int main() { // freopen("input.txt","r",stdin); int n,num1,num2,i,j,a[1005]={0},b[2005]={0},max,flag = 1,c[1005]={0}; scanf("%d",&n); for(i = 0;i < n;i++) { scanf("%d%d",&num1,&num2); a[num2] = num1;//用系数做下标 c[num2] = num1;//存储多项式相加的和,先把第一个多项式直接存进去 if(flag) { max = num2;//最大指数 flag = 0; } } scanf("%d",&n); for(i = 0;i < n;i++) { scanf("%d%d",&num1,&num2); c[num2]+=num1;//两个多项式相加,如果原来的c[num2]是否为0都没有影响 for(j = max;j >= 0;j--)//把第一个多项式遍历相乘 { if(a[j] != 0) { b[j+num2] += a[j]*num1;//相乘 } } } flag = 1;//作为输出格式的标记和是否0多项式的判断,输出格式始终没有变说明是0多项式,输出 0 0 for(i = 2004;i >= 0;i--) { if(b[i] != 0) { if(flag) { printf("%d %d",b[i],i);//注意输出格式 flag = 0; } else{ printf(" %d %d",b[i],i); } } } if(flag) { printf("0 0");//0多项式 } printf("\n"); flag = 1;
//作为输出格式的标记和是否0多项式的判断,输出格式始终没有变说明是0多项式,输出 0 0for(i = 1004;i >= 0;i--){if(c[i] != 0){if(flag){printf("%d %d",c[i],i);flag = 0;}else{printf(" %d %d",c[i],i);}}}if(flag){printf("0 0");}printf("\n");return 0;}
相关文章推荐
- Programming Ability Test学习 3-04. 一元多项式的乘法与加法运算(20)
- 3-04. 一元多项式的乘法与加法运算(20)
- 7-1(链表) 一元多项式的乘法与加法运算(20 point(s))
- 一元多项式的乘法与加法运算(20 分)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)
- 3-04. 一元多项式的乘法与加法运算(20)(ZJU_PAT 结构体)
- 一元多项式的乘法与加法运算(20 分)
- 7-2 一元多项式的乘法与加法运算(20 分)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)
- 【4C练习题】一元多项式的乘法与加法运算(20 分)
- [PTA] 线性结构2 一元多项式的乘法与加法运算(20 分)
- 一元多项式的乘法与加法运算(20 分)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分) 用结构数组的方法
- 3-04. 一元多项式的乘法与加法运算(20)(ZJU_PAT 结构体)
- 02 - 线性结构 2 一元多项式的乘法与加法运算 (20 分)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)(CPP)
- PAT 一元多项式的乘法与加法运算(20)(模拟计算过程)
- 7-1 一元多项式的乘法与加法运算(20 point(s))
- 3-04. 一元多项式的乘法与加法运算(20)
- 02-线性结构2 一元多项式的乘法与加法运算(20 分)