c语言编程中求多项式加法

多项式加法(5分)
题目内容:
一个多项式可以表达为x的各次幂与系数乘积的和,比如:
2x6+3x5+12x3+6x+20
现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。
程序要处理的幂最大为100。

输入格式:
总共要输入两个多项式,每个多项式的输入格式如下:
每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。
注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。

输出格式:
从最高幂开始依次降到0幂,如:
2x6+3x5+12x3-6x+20
注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。

输入样例:
6 2
5 3
3 12
1 6
0 20
6 2
5 3
2 12
1 6
0 20

输出样例:
4x6+6x5+12x3+12x2+12x+40
时间限制:500ms内存限制:32000kb
C

c
0

1个回答

看看这段代码能不能符合限制:

    #include <stdio.h>
    #include <stdlib.h>

    #define LENGTH 30

    struct LinkedArray{
        struct LinkedArray *next, *prev;
        int array[LENGTH];
    }head;

    int main(){
        unsigned power, tempPower, maxPower = LENGTH - 1;
        int base;
        struct LinkedArray *tempArray, *tail = &head;
        unsigned i;

        while(EOF != scanf("%d %d", &power, &base)){
            for(tempPower = power, tempArray = &head; tempPower >= LENGTH; tempPower -= LENGTH, tempArray = tempArray->next){
                if(tempArray->next == NULL){
                    tail = tempArray->next = (struct LinkedArray*)malloc(sizeof(struct LinkedArray));
                    tail->prev = tempArray; tail->next = NULL;
                    for(i = 0; i < LENGTH; i++) tail->array[i] = 0;
                    maxPower += LENGTH;
                }
            }
            tempArray->array[tempPower] += base;
        }

        for(tempArray = tail; tempArray->prev != NULL; tempArray = tempArray->prev){
            i = LENGTH;
            do{
                if(tempArray->array[--i] != 0) printf("%dx%d+", tempArray->array[i], maxPower);
                --maxPower;
            }while(i>0);
        }

        for(i = LENGTH - 1; i > 1; i--){
            if(head.array[i] != 0) printf("%dx%d+", head.array[i], maxPower);
            --maxPower;
        }
        if(head.array[1] != 0) printf("%dx+", head.array[1]);
        if(head.array[0] != 0) printf("%d", head.array[0]);
        else printf("\b \b");

        return 0;
    }

0
kobesquare
kobesquare 老兄,你这个会无限循环啊,输入的while语句那里……
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
多项式求和C语言实现
思路:用单链表来存储多形式,每一个结点存储多项式中的一项。用两个单链表分别存储两个多项式,结果再用新建一个单链表来存储。数据结构:typedef struct Node *PNode;             //节点指针类型 struct Node{ int exp;     //存储每一项的指数 float coe;     //存储每...
《零基础学Java语言·翁恺》第5周编程题 多项式加法
题目概述: 一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 题目链接: https://www.icourse163.org/learn/ZJU-1001541001?tid=1206090266#/learn/ojhw...
单链表的应用——多项式加法的C语言实现(链式存储结构)
#include #include typedef struct PolyNode{ int coef; int expon; struct PolyNode *next; } *Polynomial; Polynomial InitPolynomial(); void TraverseList(Polynomial l); void CreatePolynomial(Polynomia
多项式加法C语言实现编程序
数据结构课程中有关多项式加法内容用C语言编程实现的核心部分。适合初学者学习数据结构训练使用。
多项式加减运算—c语言描述
多项式加减运算,使用链表的数据结构,c语言实现
MATLAB——多项式加法运算
本代码主要利用MATLAB工具实现MATLAB——多项式加法运算,简单明了,易于理解
matlab多项式及其运算
0 创建多项式 多项式的一般形式如下: 我们可以使用它的系数向量来表示, matlab中,提供了poly2sym函数实现多项式的构造。 r = poly2sym(c):c为多项式的系数向量 r = poly2sym(c, v):c为多项式的系数向量,v为其变量 &amp;gt;&amp;gt; poly2sym([1 3 2]) ans = x^2 + 3*x + 2 &amp;gt;&amp;gt; ...
链表实现两个多项式的加法
最近遇到这样一个题目,使用链表来实现两个多项式的加法,刚开始觉得应该比较简单,也可能是自己基础不扎实吧,这其中也是踩了很多的坑啊,最终还是成功了,特此写博客记录一下。
数据结构:求两个多项式的相加运算
目的:掌握线性表的应用和有序单链表的二路归并算法设计。 内容:编写一个程序exp2-9.cpp,用单链表储存一元多项式,并实现 两个多项式的相加运算   #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; typedef struct LNode { int data; struct LNode* next; } LinkNode; ...
C++实现的多项式加法
换手机号又忘记密码了,可怜了我的C币。只能从头来过导言:C++抽象数据类型(Abstract Data Type 简称ADT)实现 多项式相加实现效果类似下图主函数 模块化原则:尽量将重复代码抽象成功能函数    三个参数的PolyAddd(被加多项式,加多项式,多项式的和)      考虑到多项式类的设计 多项式相加应该属于类外函数,设计成模板友元类更符合类的设计,但是耦合性就会变高,所谓有得有...
C简单算法——多项式加法
题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系...
MATLAB——多项式加法函数示例
本代码主要利用MATLAB工具实现MATLAB——多项式加法函数示例,简单明了,易于理解
MATLAB中的多项式的四则运算与求根方法
文章目录1.多项式的加法2.多项式乘法3.多项式除法4.多项式求根及其逆运算4.1 多项式求根4.2 求根的逆运算 1.多项式的加法 当两个多项式的阶次不一样的时候,低阶的多项式用首零填补,使其和高阶多项式有相同的阶次。下面是通用的多项式加法函数示例: 现在为了验证该函数ppadd(a,b),命令行输入以下内容然后按回车键得: 结果是: c(x)c(x)c(x)=x4x^4x4+3x33x^3...
多项式加法(10分)
一个多项式可以表达为x的各次幂与系数乘积的和,比如:     2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次
02-线性结构2 一元多项式的乘法与加法运算
最近重学数据结构,记一下 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零
PAT 02-线性结构2 一元多项式的乘法与加法运算 (java)
使用Java语言和数组实现一元多项式的乘法与加法运算,其中主要内容包括,程序框架,函数分析和原代码。
java实现一元多项式加法
思路:多项式结点类描述:(Node结点,Linklist类的描述在创建单链表的文章已经实现)public class PolynNode { public double coef; //系数 public int expn; //指数 public PolynNode(double coef,int expn){ //构造函数 this.coef=coef; thi...
02-线性结构2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 注意的是零多
单链表实现多项式相加
这个小项目用C语言实现 代码中有我的注释 代码: //mylist.h #pragma once typedef int DataType; typedef char Variate; typedef struct Node{ DataType _elem; //项的系数 Variate _ch; //规定'#'表示此项为常数项 int _power; //项的次方 s...
Ployn__java
java实现多项式的加法,乘法,除法,和求最大公因子
多项式加法编程题-编程练习题(100)
目录 问题: 分析: C++STL代码: 总结: 问题: 5. 【问题描述】 一个多项式可以表示为一组数对,数对中第一个数始终为整数,且唯一,表示多项式的次数,另一数表示为对应的系数且不为0。输入两组数对,每组以0 0作为结束,实现对两个多项式的加法并按降幂输出结果数对 【输入形式】 每行输入一个数对,以空格为分隔符,以0 0结束 【输出形...
02 线性结构2 一元多项式的乘法与加法运算(python实现)
前言:这几天正在学习数据结构,整理课后习题。 题目: 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0...
PAT 一元多项式的乘法与加法运算(链表 c++版)
题目按照指数递减的顺序给出两个一元多项式,输出两个多项式的乘积,还有 和 ,按照指数递减的顺序。 用链表实现一元多项式的乘法与加法运算。 首先来看加法运算 多项式 poly1 x^4 + 3x^3 + 6x 多项式 poly2 6x^5 + 4x^4 + 6 既然用到链表,自然少不了结构体 struct node{ int coef; //系数 int expn...
5-2 一元多项式的乘法与加法运算 (20分)
5-2 一元多项式的乘法与加法运算 (20分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式
MATLAB求出不可约多项式(实现二进制加法、除法)
本人的课堂小作业,发现网上没有完全整合好的算法,所以用MATLAB实现了一下1、 什么是不可约多项式?就相当于素数一样,除了1和本身之外不能被其他多项式整除的多项式就称为不可约多项式,也叫做既约多项式 这里可以参考百度百科 既约多项式-百度百科2、实现该算法所需要完成的准备1、 多项式的除法运算,在MATLAB中有一个函数deconv()可以使用,所以本次实验采用MATLAB编程实现 代码如
C++ 链表实现多项式加法
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; typedef struct Polynode { int coef; int exp; struct Polynode *next; }Polynode, *Polylist; // 初始化多项式 bool InitPoly(Polylist *Poly) // 二级指针 { *P...
数据结构篇:链表多项式的加法与乘法。(C++)
链表多项式还算比较简单的。 步骤分为 1.创建链表                  2.链表排序                  3.链表的自我化简                   4.进行运算                  5.进行自我化简(仅乘法需要多这一步)       设计报告地址:https://download.csdn.net/download/qq_1502...
PTA--一元多项式的乘法与加法运算
这个问题耗时90分钟才搞定,其中主要的逻辑用时30分钟,调输出格式用时60分钟。。。 我想起来这是我为什么很抵触去写OJ题,很多情况下是你想明白了问题的解法,但是在最后的格式输出上不能完全匹配,便被机器判定为错误的答案。 但是,做的多了,会爱上做OJ题,原因是,要准确匹配题中的所有要求,会逼着你认真思考问题的细节,哪怕是格式也要仔细判定。这不正是代码的特长,也是我们爱上写代码的原因吗?OK,回到
两个多项式相乘和相加的java实现
PAT上两个多项式相乘和相加的java实现:import java.util.Scanner; class Node{ int c; int e; Node next; } public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(Syste
Java 多项式加法
题目内容   一个多项式可以表达为x的各次幂与系数乘积的和,比如:2x6+3x5+12x3−6x+202x6+3x5+12x3−6x+202x^6+3x^5+12x^3-6x+20。   现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。 输入格式   总共要输入两个多项式,每个多项式的输入格式如下:   每行...
顺序表应用之两个一元多项式求和
#include <stdio.h> #include <malloc.h> typedef struct node{ int coef;//系数 int exp;//指数 struct node *next; }NODE;NODE *creatPoly(){ int coef; int exp; NODE *head,*tail,*s;//链表头结点
pta 一元多项式的乘法与加法运算
7-2 一元多项式的乘法与加法运算(20 分) 设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间...
用链表实现一元多项式加减、求导(Java)
Lnode.java package PloyItem; /** *@Author wzy *@Date 2017年11月12日 *@Version JDK 1.8 *@Description */ public class Lnode implements Comparable&amp;lt;Lnode&amp;gt;,Cloneable{ public double coef; ...
Java数据结构之多项式加法和乘法实现
Java数据结构复习之多项式加法和乘法实现 存储结构 数组 链表 数组实现package com.genge.jichu.polyn;/** * 用数组表示的多项式,以及相关实现 * Created by Genge on 2016-06-15. */ public class Polynomial { /** * 多项式的加法 * * @param a
中国大学MOOC 零基础学Java语言 ——多项式加法(5分) 4分答案(想哭)
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x =in.nextInt(); int a =x; int y ; ...
c语言 7-2 一元多项式的乘法与加法运算
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2  6 1  -2 03 ...
一元多项式的加减法 C++实现
一元多项式的加减法c++实现
Java链表练习实现一元多项式的加法
链表的实现在之前写过了,就不再写了 将链表的数据域赋值为多项式结点类 多项式结点类: package polynomialOfOneIndeterminate; public class PolynNode { public double coef;//系数 public int expn;//指数 public PolynNode(double coef,int ex
c语言一元多项式的相加
1. 问题描述 设计一个程序实现两个一元稀疏多项式的表示及基本操作(建立、销毁、输出、加法、减法等操作)。 2. 算法设计 根据一元多项式相加的运算规则:对于两个一元多项式中所有指数相同的项,对应指数相加(减),若其和(差)不为零,则构成“和(差)多项式”中的一项;对于两个一元多 项式中所有指数不相同的项,则分别写到“和(差)多项式”中去。因为多项式指数最高项以及项数是不确定的,因
单链表实现多项式的存储和加法
采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。 算法分析: 不采用申请新节点的方法,要充分利用老节点。 代码实现如下: #include #include #include using namespace std; typedef struct node { int coef,exp; struct node *next; } JD,*Link