精华内容
下载资源
问答
  • #include<stdio.h> #include<string.h> int main() { int x,z; while(scanf("%d,%d",&x,&z)) { int a[1005]={0}; a[z]=x;...%d,...
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	int x,z;
    	while(scanf("%d,%d",&x,&z))
    	{
    		int a[1005]={0};
    		a[z]=x;
    		if(x==0&&z==0)break;
    		while(1)
    		{
    			scanf("%d,%d",&x,&z);
    			a[z]=a[z]+x;
    			if(x==0&&z==0)break;
    		}
    			while(1)
    		{
    			scanf("%d,%d",&x,&z);
    			a[z]=a[z]+x;
    			if(x==0&&z==0)break;
    		}
    		int f=0;
    		for(int i;i<1005;i++)
    		{
    			if(a[i])
    			{
    				if(f)printf("+");
    				printf("%dx^%d",a[i],i);
    				f=1;
    			}
    		}
    	}
    	return 0;
    }

    展开全文
  • 一元多项式加法运算的实现 编程实现一元多项式的加法运算。(要求链表实现) 输入 第一个一元多项式A; 第二个一元多项式B。 以(0,0)作为输入结束。 输出 多项式A和多项式B的和。 样例输入 5,3 7,8 9...

    一元多项式加法运算的实现

    编程实现一元多项式的加法运算。(要求用链表实现)

    输入

    第一个一元多项式A; 第二个一元多项式B。 以(0,0)作为输入结束。

    输出

    多项式A和多项式B的和。

    样例输入

    5,3 7,8 9,15 0,0
    2,0 6,3 -7,8 0,0

    样例输出

    2x^0+11x^3+9x^15
    #include<stdio.h>
    int main()
    {
    	int a[100][2];
    	int b,c;
    	int i;
    	for(i=0; ;i++)
    	{
    		scanf("%d,%d",&b,&c);
    		if(b!=0||c!=0)
    		{
    			a[i][0]=b;
    			a[i][1]=c;
    		}
    		else
    		break;
    	}
    	while(1)
    	{
    		scanf("%d,%d",&b,&c);
    		if(b!=0||c!=0)
    		{
    			a[i][0]=b;
    			a[i][1]=c;
    			i++;
    		}
    		else
    		break;
    	}
    	for(int k=0;k<i;k++)
    	{
    		
    		for(int t=k+1;t<i;t++)
    		{
    			if(a[k][1]==a[t][1])
    			{
    				a[k][0]+=a[t][0];
    				a[t][0]=0;
    				a[t][1]=0; 
    			}
    		}
    	}
    	for(int k=0;k<i;k++)
    	{
    		for(int t=0;t<i-1;t++)
    		{
    			if(a[t][1]>a[t+1][1])
    			{
    				int m=a[t][0];
    				a[t][0]=a[t+1][0];
    				a[t+1][0]=m;
    				int n=a[t][1];
    				a[t][1]=a[t+1][1];
    				a[t+1][1]=n;
    			}
    		}
    	}
    	int y=0;
    	for(int k=0;k<i;k++)
    	{
    		if(a[k][0]!=0)
    		{
    			y++;
    		}
    	}
    	for(int k=0;k<i;k++)
    	{
    		if(a[k][0]!=0&&y!=1)
    		{
    			printf("%dx^%d+",a[k][0],a[k][1]);
    			y--;
    		}
    		else if(a[k][0]!=0&&y==1)
    		printf("%dx^%d",a[k][0],a[k][1]);
    	}
    } 

     

    展开全文
  • #include "iostream" #include "stdio.h" using namespace std; typedef int ElemType; typedef struct Node { ElemType i; // 指数 ElemType c; // 系数 Node *next;...amp...
    #include "iostream"
    #include "stdio.h"
    using namespace std;
    typedef int ElemType;
      
    typedef struct Node
    {
        ElemType i; // 指数
        ElemType c; // 系数
        Node *next;
    }*pNode;
      
    void Creat(pNode &L)
    {
        int i, c;
        scanf("%d,%d", &c, &i);
        //  cin >> c >> "," >> i;
        if(i == 0 && c == 0) L = NULL;
        else
        {
            L = new Node;
            L->c = c;
            L->i = i;
            Creat(L->next);
        }
    }
      
    void Add(pNode &L1, pNode L2)
    {
        pNode p = L1->next, q = L2->next;
        pNode r = L1, s = NULL;
          
        while (p || q)
        {
            if(p == NULL)
            {
                s = q->next;
                q->next = r->next;
                r->next = q;
                q = s;
            }
            else if(q == NULL)
            {
                p = p->next;
                r = r->next;
            }
            else if (p->i > q->i)
            {
                s = q->next;
                q->next = r->next;
                r->next = q;
                q = s;
                r = r->next;
            }
            else if (p->i == q->i)
            {
                p->c += q->c;
                s = p->next;
                if(p->c == 0)
                {
                      
                    r->next = p->next;
                    delete p;
                      
                }
                r = r->next;
                p = s;
                q = q->next;
            }
            else
            {
                p = p->next;
                r = r->next;
            }
        }   
    }
    int main()
    {
        pNode L1, L2;
        L1 = new Node;
        L2 = new Node;
        Creat(L1->next);
        Creat(L2->next);
        Add(L1,L2);
        while (L1->next)
        {
            cout << L1->next->c << "x^"
                << L1->next->i;
            L1 = L1->next;
            if(L1->next) cout << "+";
        }
    }


    展开全文
  • 一元多项式加法运算的实现 swustoj

    千次阅读 2018-04-20 19:36:25
    一元多项式加法运算的实现 10000(ms) 10000(kb) 2093 / 5095编程实现一元多项式的加法运算。(要求链表实现)输入第一个一元多项式A; 第二个一元多项式B。 以(0,0)作为输入结束。输出多项式A和多项式B的...
    一元多项式加法运算的实现
     10000(ms)
     10000(kb)
     2093 / 5095
    编程实现一元多项式的加法运算。(要求用链表实现)

    输入

    第一个一元多项式A; 第二个一元多项式B。 以(0,0)作为输入结束。

    输出

    多项式A和多项式B的和。

    样例输入

    5,3 7,8 9,15 0,0
    2,0 6,3 -7,8 0,0

    样例输出

    2x^0+11x^3+9x^15

    结构体数组:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct node
    {
        int x,y;
    }A[1005],B[1005];
    bool cmp(node A,node B)//排序
    {
    	return A.y<B.y;
    }
    int main()
    {
    	int a,b;
    	char c;
    	int m=0,n=0;
    	while(cin>>a>>c>>b)//输入第一组数
    	{
    		if(a==0&&b==0) break;
    		else
    		{
    			A[m].x=a;
    			A[m].y=b;
    			m++;
    		}
    	}
    	while(cin>>a>>c>>b)//输入第二组数
    	{
    		if(a==0&&b==0) break;
    		else
    		{
    			B[n].x=a;
    			B[n].y=b;
    			n++;
    		}
    	}
    	sort(A,A+m,cmp);//排序
    	sort(B,B+n,cmp);
    	a=0;b=0;
    	int flag=0;//记标记表示是第一个输入
    	while(a<m||b<n)
    	{
    		if(b>=n)//当a比b长时
    		{
    			if(flag) cout<<"+";
    			cout<<A[a].x<<"x^"<<A[a].y;
    			a++;
    		 }
    		else if(a>=m)//当b比a长时
    		{
    			if(flag) cout<<"+";
    			cout<<B[b].x<<"x^"<<B[b].y;
    			b++;
    		}
    		else
    		{
    			if(flag&&B[b].x+A[a].x!=0) cout<<"+";
    			if(A[a].y==B[b].y)
    			{
    				if(B[b].x+A[a].x==0)
    				{
    					a++;b++;
    				}
    				else
    				{
    					cout<<B[b].x+A[a].x<<"x^"<<B[b].y;
    					a++;b++;
    				}
    						else
    			{
    				if(A[a].y<B[b].y)
    				{
    					cout<<A[a].x<<"x^"<<A[a].y;
    					a++;
    				}
    				else if(A[a].y>B[b].y)
    				{
    					cout<<B[b].x<<"x^"<<B[b].y;
    					b++;
    				}
    			}
    		}
    		flag=1;
    	}
    	return 0;
    }
    
    链表:(思路都差不多)
    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    typedef struct node
    {
    	int index;
    	int coef;
    	struct node *next;
    }Sqlist;
    
    
    void sort(Sqlist *l)
    {
    	Sqlist *r,*s,*t;
    	s=l->next;
    	while(s!=NULL)
    	{
    		r=s->next;
    		while(r!=NULL)
    		{
    			if(s->index>r->index)
    			{
    				t->index=s->index;
    				t->coef=s->coef;
    				s->index=r->index;
    				s->coef=r->coef;
    				r->index=t->index;
    				r->coef=t->coef;
    			}
    			 r=r->next; 
    		}
    		s=s->next;
    	}
    }
    int main()
    {
    	int n,m;
    	char c;
    	Sqlist *l_1,*l_2,*r,*s;
    	l_1=(Sqlist *)malloc(sizeof(Sqlist));
    	l_1->next=NULL;
    	r=l_1;
    	
    	while(cin>>n>>c>>m)
    	{
    		if(n==0&&m==0) break;
    		s=(Sqlist *)malloc(sizeof(Sqlist));
    		s->coef=n;
    		s->index=m;
    		r->next=s;
    		r=s;
    	}
    	r->next=NULL;
    	sort(l_1);
    	l_2=(Sqlist *)malloc(sizeof(Sqlist));
    	l_2->next=NULL;
    	r=l_2;
    	
    	while(cin>>n>>c>>m)
    	{
    		if(n==0&&m==0) break;
    		s=(Sqlist *)malloc(sizeof(Sqlist));
    		s->coef=n;
    		s->index=m;
    		r->next=s;
    		r=s;
    	}
    	r->next=NULL;
    	sort(l_2);
    	r=l_1->next;
    	s=l_2->next;
    	int flag=0;
    	
    	while(r!=NULL||s!=NULL)
    	{
    		if(r!=NULL&&s==NULL) 
    		{
    			if(r->coef>0&&flag==1) cout<<"+";
    			cout<<r->coef<<"x^"<<r->index;
    			r=r->next;
    		}
    		else if(s!=NULL&&r==NULL)
    		{
    			if(s->coef>0&&flag==1) cout<<"+";
    			cout<<s->coef<<"x^"<<s->index;
    			s=s->next;
    		 }
    		else if((r->index<s->index)&&(r!=NULL&&s!=NULL))
    		{
    			if(r->coef>0&&flag==1) cout<<"+";
    			cout<<r->coef<<"x^"<<r->index;
    			r=r->next;
    		}
    		else if((r->index>s->index)&&(r!=NULL&&s!=NULL))
    		{
    			if(s->coef>0&&flag==1) cout<<"+";
    			cout<<s->coef<<"x^"<<s->index;
    			s=s->next;
    		}
    		else if((r->index==s->index)&&(r!=NULL&&s!=NULL))
    		{
    			if(s->coef+r->coef>0&&flag==1) cout<<"+";
    			if(s->coef+r->coef!=0)
    			{
    				cout<<s->coef+r->coef<<"x^"<<s->index;
    				s=s->next;
    				r=r->next;
    			}
    			if(s->coef+r->coef==0)
    			{
    				s=s->next;
    				r=r->next;
    							flag=1;
    	}
    	return 0;
    }
    
    展开全文
  • 编程实现一元多项式的加法运算。(要求链表实现) 输入 第一行为一元多项式A, 以 0,0 作为输入结束; 第二行为一元多项式B, 以 0,0 作为输入结束。 输出 多项式A和多项式B的和。 样例输入 5,3 7,8 9,15 0,0 2,0 ...
  • 大数的加法运算与大小判断 序号:#19 难度:有挑战 时间限制:1000ms 内存限制:10M 描述 对于给定的算术表达式,按规则输出计算结果,仅包含加法和大小判断。 输入 一行字符串,为加号、大于、小于( + &lt; &...
  • 注意:该运算不改变两个操作数的值。 重载输入和输出运算符,用于输入和输出对象的属性值。 无参构造函数和带参构造函数。 Input 第1行N>0,表示测试用例数量。 每个测试用例包括2个非负整数,空格隔开...
  • 1040 一元多项式加法运算的实现 描述 编程实现一元多项式的加法运算。(要求链表实现) 输入 第一行为一元多项式A, 以 0,0 作为输入结束; 第二行为一元多项式B, 以 0,0 作为输入结束。 输出 多项式A和...
  • 原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=1002 【Problem Description】 I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum ... 【Input】 ...Th...
  • 对于给定的算术表达式,按规则输出计算结果,仅包含加法和大小判断。 输入: 一行字符串,为加号、大于、小于( + < > ) 连接的两个不限大小的非负整数。 输出: 当符号为 + 时, 计算两个数相加的和, 并以字符...
  • 实数加法运算

    2020-10-20 14:02:05
    哇,OJ管理员看到大家都把题库里的第一道题整数a+b给A掉了,心里想:既然整数a+b难不倒你们,就试试这道实数a+b吧。 输入 输入两个实数,两个数空格隔开 输出 输出为两个实数的和,单独占一行 样例输入 1 1 样例...
  • 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2725 解决:736 题目描述: 求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下...对于每组案例,第1行是测试数据的组数n,每组测试
  • OJ 高精度加法

    2017-03-20 13:08:15
    高精度运算:实现大数位千位,万位的加法运算  输入:  1234  111111  输出:  112345  基本思想:将数串转换为字符串进行运算  代码如下:  #inclu
  • Problem B: 大整数的加法运算 我们知道,C++中的整数类型,如short、int、long和long long等都有确定的表示范围,超大的整数是不能表示的。请定义一个类Decimal,用于表示大整数,并实现如下方法: 1.根据给出的main...
  • Problem E: 新奇的加法运算

    千次阅读 2017-05-04 13:32:17
    Home Web Board ProblemSet Standing Status ...Problem E: 新奇的加法运算 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1117 Solved: 685 [Submit][Status][Web Board] Descript
  • 多项式加法 时间限制(普通/Java) :...线性表是一种最简单、最基本,也是最常用的数据结构,其用途十分广泛,例如,带表头结点的单链表求解一元整系数多项式加法和乘法运算。 现给两个一元整系数多项式,请求解两者
  • PTA--一元多项式的乘法与加法运算

    千次阅读 2016-10-04 19:46:28
    我想起来这是我为什么很抵触去写OJ题,很多情况下是你想明白了问题的解法,但是在最后的格式输出上不能完全匹配,便被机器判定为错误的答案。 但是,做的多了,会爱上做OJ题,原因是,要准确匹配题中的所有要求,会...
  • 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)...
  • 题目描述:线性表是一种最简单、最基本,也是最常用的数据结构,其用途十分广泛,例如,带表头结点的单链表求解一元整系数多项式加法和乘法运算。现给两个一元整系数多项式,请求解两者之和。 题目链接:...
  • //如果在oj上面C++提交也需要添加 //当然这里c的朋友可以换成#include <stdio.h> 和 #include <stdlib.h> //#include <stdlib.h> //#include <stdlib.h> #include<iostream&...
  • 5-2 一元多项式的乘法与加法运算 (20分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不...
  • 比利经常会碰到超大整数的加法运算,而普通的计算器上无法进行。因此他想你帮他写一个程序来计算结果。 输入 输入数据有多组。首先输入一个整数T,表示有T组输入。 每组输入两个大整数,并用空格隔开。每个整数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,680
精华内容 672
关键字:

oj用加法运算