首页 > 其他分享 >多项式加法

多项式加法

时间:2022-11-17 22:44:58浏览次数:50  
标签:系数 int 多项式 加法 else printf 输入

多项式加法

题目内容:

一个多项式可以表达为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

    这一题没什么 主要是好多细节 我提交了很多次。。。。 纪念一下  
#include <stdio.h>

void getPoly(int a[]){
    int coef,expon;
    do{
        scanf("%d %d",&expon,&coef);
        a[expon] = coef;
    }while (expon != 0);
}

int main(){
    int a[101] = {0},b[101] = {0},c[101] = {0};
    getPoly(a);
    getPoly(b);
    int flag = 0;
    for (int i = 0; i < 101; ++i) {
        c[i] = a[i] + b[i];
    }
    for (int i = 100; i >= 0; i--) {
        if(c[i] != 0){
            if(flag == 0){
                if(i == 0)
                {
                    printf("%d",c[i]);
                }
                else if(i == 1)
                {
                    if(c[i] == 1)
                    {
                        printf("x");
                    }
                    else if (c[i] == -1)
                    {
                        printf("-x");
                    }
                    else
                    {
                        printf("%dx",c[i]);
                    }
                }
                else
                {
                    if(c[i] == 1)
                    {
                        printf("x%d",i);
                    }
                    else if (c[i] == -1)
                    {
                        printf("-x%d",i);
                    }
                    else
                    {
                        printf("%dx%d",c[i],i);
                    }
                }
                flag = 1;
            }else{
                if(i == 0)
                {
                    if(c[i] > 0)
                    {
                        printf("+%d",c[i]);
                    }
                    else{
                        printf("%d",c[i]);
                    }
                }
                else if(i == 1)
                {
                    if(c[i] == 1)
                    {
                        printf("+x");
                    }
                    else if(c[i] == -1)
                    {
                        printf("-x");
                    }
                    else if(c[i] > 0)
                    {
                        printf("+%dx",c[i]);
                    }
                    else
                    {
                        printf("%dx",c[i]);
                    }
                }
                else
                {
                    if(c[i] == 1)
                    {
                        printf("+x%d",i);
                    }
                    else if(c[i] == -1)
                    {
                        printf("-x%d",i);
                    }
                    else if(c[i] > 0)
                    {
                        printf("+%dx%d",c[i],i);
                    }
                    else
                    {
                        printf("%dx%d",c[i],i);
                    }
                }
            }
            
        }
    }
    if(flag == 0){
        printf("0");
    }
    return 0;
}

 

 

标签:系数,int,多项式,加法,else,printf,输入
From: https://www.cnblogs.com/xinrenbool/p/16901305.html

相关文章

  • 【模板】多项式乘法 FFT
    postedon2022-08-0223:57:12|under模板|source膜拜,抄写problem\[c_k=\sum_{i+j=k}a_ib_j.\]\(a,b\)已知,要求\(O(n\logn)\)。prework:复数定义初中数学中......
  • PTA一元多项式的乘法与加法运算
    设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000......
  • [AcWing 791]高精度加法
    点击查看代码#include<iostream>#include<vector>//含有size方法usingnamespacestd;//C=A+Bvector<int>add(vector<int>&A,vector<int>&B){vecto......
  • 数值分析实验6:多项式插值(牛顿、拉格朗日)
    数值分析第二章实习题第一题 拉格朗日插值test.m程序:functionyy=test(x,y,xx)n=length(x);m=length(y);ifn~=m   error('x和y的维数必须相同');   r......
  • 【LGR125D】【JRKSJ R5】Concvssion(多项式,长链剖分)
    Sub1:\(a_i=(i+1)\bmodn\)即图只有一个环。设\(g_u\)表示原来\(u\)上有多少个点,\(f_u=u\)表示\(u\)的点权。那么对于某个\(k\in[1,n]\),\(ans_k=\sum_{u}g_uf_......
  • 计算机等级考试二级C语言程序设计专项训练题——多项式求值
        在计算机等级考试二级C语言程序设计试题中,多项式求值是一个重要的考点,有关多项式求值的试题在历年考试试卷的程序填空题和程序设计题中经常出现。一.示例讲解......
  • 重温python基础:列表相加的方法(两个list [] 加法)
    哈喽兄弟么,今天咱们来复习一下列表相加的两个方法。利用操作符++操作符对象是lista=[1,2,3]b=[4,5,6]c=a+bprint(c)#c的结果:[1,2,3,4,5,6] ......
  • C++一元多项式计算器的设计与实现
    C++一元多项式计算器的设计与实现七、一元多项式计算器的设计与实现1.基于动态数组或者链表实现--元多项式的计算,可以使用STL的vector或者list。2.在系统中需要提供必......
  • 大数加法
     import java.util.*;public class Solution {    /**     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可     *......
  • 高精度加法(Java)
    题目描述高精度加法,相当于a+bproblem,不用考虑负数。输入格式分两行输入。a,b≤ 10^500输出格式输出只有一行,代表a+b 的值。思路使用数组进行模拟,如果......