程序设计入门——C语言 第7周编程练习 1多项式加法(5分)

第7周编程练习

依照学术诚信条款,我保证此作业是本人独立完成的。

温馨提示:

1.本次作业属于Online Judge题目,提交后由系统即时判分。

2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。

1

多项式加法(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

//
//  main.c
//  c yuyan
//
//  Created by anzhongyin on 2016/11/29.
//  Copyright ? 2016年 anzhongyin. All rights reserved.
//

#include <stdio.h>
//#include <math.h>

int main(int argc, const char * argv[]) {
    // insert code here...
    // TODO Auto-generated method stub
    int a,b;

    int number[101]={0};
    for(int i=0;i<2;i++)
    {
    do
    {
        scanf("%d %d",&a,&b);
        number[a]+=b;
    }while(a);
    }
        int c=1;
    for(int i=101-1;i>=2;i--)
    {
        if(c)
        {
            if(number[i]==1||number[i]==-1)
            {
                printf("x%d",i);
                c=0;
            }
            else if(number[i]!=0)
            {
                printf("%dx%d",number[i],i);
                c=0;
            }
        }else
        {
            if(number[i]==1)
            {
                printf("+x%d",i);

            }else if(number[i]==-1)
            {
                printf("x%d",i);

            }

            else if(number[i]>0)
            {

               printf("+%dx%d",number[i],i);
            }else if(number[i]<0)
            {
                printf("%dx%d",number[i],i);
            }

        }

    }
    if(c)
    {
        if(number[1]==1||number[1]==-1)
        {
            printf("x");
            c=0;
        }else if(number[1]!=0)
        {
            printf("%dx",number[1]);
            c=0;
        }

        if(number[0]!=0)
        {
            printf("%d",number[0]);
            c=0;
        }
    }else
    {
        if(number[1]==1)
        {

             printf("+x");
        }else if(number[1]==-1)
        {

            printf("x");
        }
        else if(number[1]>0)
        {
           printf("+%dx",number[1]);

        } else if(number[1]<0)
        {
            printf("%dx",number[1]);

        }

        if(number[0]>0)
        {
            printf("+%d",number[0]);

        }else if(number[0]<0)
        {
            printf("%d",number[0]);

        }

    }

    if(c){
        printf("0");
    }
    printf("\n");
    return 0;
}

  

时间: 2024-10-03 20:03:54

程序设计入门——C语言 第7周编程练习 1多项式加法(5分)的相关文章

程序设计入门——C语言 第7周编程练习 2 鞍点(5分)(5分)

2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格式: 输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格. 输出格式: 对输入的矩阵,如果找到鞍点,就输出其下标.下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数. 如果找不到,就输出 NO 题目所给的数据保证

程序设计入门——C语言 第2周编程练习 信号报告(5分)

2 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一位,共分5级,用1-5数字表示. Unreadable Barely readable, occasional words distinguishable Readable with considerable difficulty Readable with practically no difficulty Per

程序设计入门—Java语言 第六周编程题 1 单词长度(4分)

第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's"算一个单词,长度为4.注意,行中可能出现连续的空格. 输入格式: 输入在一行中给出一行文本,以'.'结束,结尾的句号不能计算在最后一个单词的长度内. 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后

程序设计入门——C语言 第1周编程练习 1逆序的三位数(5分)

第1周编程练习 查看帮助 返回 第1周编程练习题,直到课程结束之前随时可以来做.在自己的IDE或编辑器中完成作业后,将源代码的全部内容拷贝.粘贴到题目的代码区,就可以提交,然后可以查看在线编译和运行的结果.不要在程序中输出题目要求输出的内容以外的东西. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 逆序的三位数(5分) 题目

程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式:当读到的就是素数时,输出它本身. 提示:可以用一个函数来判断某数是否是素数. 输入格式: 一个整数,范围在[2,100000]内. 输出格式: 形如: n=axbxcxd 或 n=n 所有的符号之间都没有空格,x是小

程序设计入门——C语言 第6周编程练习 2 完数(5分)

2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数. 提示:可以写一个函数来判断某个数是否是完数. 输入格式: 两个正整数,以空格分隔. 输出格式: 其间所有的完数,以空格分隔,最后一个数字后面没有空格.如果没有,则输出一行文字: NIL (输出NIL三个大写字母

程序设计入门——C语言 第2周编程练习 1时间换算(5分)

1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千位部分:如果小时是0,则没有百位部分:如果小时不是0而分小于10分,需要保留十位上的0:如果小时是0而分小于10分的,则不需要保留十位上的0.如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分. 有效的输入范围是0到2359,即你的程序不可能从

程序设计入门—Java语言 第五周编程题 2井字棋(5分)

2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n=3就表示是一个3x3的棋盘.然后,要读入n行,每行n个数字,每个数字是1或0,依次表示[0,0]到[n-1,n-1]位置上的棋子.1表示X,0表示O(大写字母O). 你的程序要判断其中是否存在某一方获胜,获胜的条件是存在整行或整列或整条对角线或整条反对角线上是相同的棋子.如果存在,则输出代表获胜一

程序设计入门——C语言 第3周编程练习 2 数字特征值(5分)

2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0.按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字.比如,对于342315,这个二进制数字就是001101. 这里的计算可以用下面的表格来表示: 数字 3 4 2 3 1 5 数位 6 5 4 3 2 1 数字奇偶