一元多项式相乘

#include<cstdio>
typedef struct Node{
	int coe;
	int exp;
}node;
int main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	node a[100],b[100];
	for(int i=0;i<m;i++)
	{
		scanf("%d %d",&a[i].coe,&a[i].exp);
	}
	for(int j=0;j<n;j++)
	{
		scanf("%d %d",&b[j].coe,&b[j].exp);
	}
	node c[200];
	int k=0;
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			c[k].coe=a[i].coe*b[j].coe;
			c[k].exp=a[i].exp+b[j].exp;
			k++;
		}
	}
	c[k].coe=0;
	c[k].exp=0;
	for(int i=0;i<k;i++)
	{
		printf("%d %d\n",c[i].coe,c[i].exp);
	}
	for(int i=0;i<k;i++)
	{
		for(int j=i+1;j<k;j++)
		{
			if(c[i].exp==c[j].exp)
			{
				c[i].coe+=c[j].coe;
				for(int x=j;x<k;x++)
				{
					c[x].coe=c[x+1].coe;
					c[x].exp=c[x+1].exp;
				}
				k--;
				i--;
				j--;
			}
		}
	}
	for(int i=0;i<k;i++)
	{
		printf("%d %d\n",c[i].coe,c[i].exp);
	}
	return 0;
}


http://blog.csdn.net/zssureqh/article/details/21116883

时间: 2024-08-28 14:12:38

一元多项式相乘的相关文章

【线性表】一元多项式相乘

1 /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 6 typedef struct node 7 { int coef, exp; //coef:系数 exp:指数 8 struct node *next; //下一项 9 } NODE; 10 11 NODE* multiplication( NODE *, NODE * , NODE

【链表的应用】一元多项式相加及相乘 和对问题的分析

一元多项式相乘,需要将一个多项式的每一项的指数与另一个多项式的每一项的指数相乘. 代码实现: 头文件以及函数声明: #ifndef _POLYN_H #define _POLYN_H #include<iostream> #include <malloc.h> #include <stdio.h> using namespace std; #define _CRT_SECURE_NO_DEPRECATE #define NULL 0 typedef struct NOD

一元多项式的加减乘法

输入一元多项式的参数,然后根据一元多项式加法减法乘法的计算法则,求解最终结果.用到了结构体,指针,操作的时候要注意. 不多说,上代码: 1 #include <stdio.h> 2 #include <malloc.h> 3 4 typedef struct node{ 5 float coef; 6 int expn; 7 struct node *next; 8 }PLOY; 9 10 void start(){ 11 printf("****************

线性表在一元多项式运算中的应用

实验题1-1 多项式运算 [问题描述]有两个指数递减的一元多项式,写一程序先求这两个多项式的和,再求它们的积. [提示] 用带表头结点的单链表作为多项式的存储表示:要建立两个单链表:多项式相加就是要把一个单链表中的结点插入到另一个单链表中去,要注意插入.删除操作中指针的正确修改. #include <iostream> using namespace std; int k = 1; typedef struct { float coef; //系数 int expn; //指数 }term;

一道 google曾出过的笔试题:编程实现对数学一元多项式的相加和相乘操作(1)

数学中一元n次多项式可表示成如下的形式: Pn(x)=p0+p1x+p2x^2+…+pnx^n     (最多有 n+1 项,n +1 个系数唯一确定她) (1)请设计一套接口用以表示和操作一元多项式 (2)根据上述设计实现一元n次多项式的加法运算 (3)根据上述设计实现一元n次多项式的乘法运算 分析:  题目大概意思: 数学里常见的一元 n 次表达式,设计出加减乘除的函数(方法),同时提供对外接口,把内部实现封装起来,而 n 的大小没有指定. 问题的本质: 就是一系列的单个未知数 x,指数和系

一元多项式的相乘(代码)

1 #include <iostream> 2 #include<stdlib.h> 3 4 using namespace std; 5 6 7 #define MAXSIZE 20 8 9 typedef struct LNode 10 { 11 int coef;//系数 12 int expn;//指数 13 struct LNode *next; 14 }LNode,*LinkList; 15 16 17 int CreateList_L(LinkList &L,

Python实现一元多项式的相加相乘运算

自己亲手写的,没有参考,写了改改了写.个人感觉c语言版本的会更好些,因为多个指针,Python用链表自己就是多设了头结点,然后只用各个节点的指针来实现. class ListNode:def init(self, x, y):self.c = xself.e = yself.next = Noneclass Solution: def ReadandLink(self,N): self.N=N a0=ListNode(0,0) a0.next=None c0=a0 for i in range(

数据结构之一元多项式的加法和乘法

Polynomial.h 1 #define _CRT_SECURE_NO_DEPRECATE 2 #include "Polynomial.h" 3 #include <stdio.h> 4 #include <stdlib.h> 5 6 int ListLength(NormLinkList *L) 7 { 8 int num = 0; 9 Link p = NextPos(L, GetHead(L)); 10 while(p) 11 { 12 num++;

一元多项式的运算

以一元多项式加法运算为例: A,B可用线性链表可以表示为: “和多项式”链表如下(图中的长方框表示已经被释放的结点): #include <stdio.h> #include <stdlib.h> typedef struct Polyn{ int data; int index; struct Polyn *next; }Polyn,*Polynlist; void CreatPolyn(Polynlist &p,int m)//输入m项的系数和指数,建立一元多项式P {