1
多项式加法(5分)

题目内容:

一个多项式可以表达为x的各次幂与系数乘积的和,比如:

现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为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
 
 #include <stdio.h>
main()
{
int a[][], b[][], c[][];
int i, j, m, n, cnt = ; for (i = ; i < ; i++) /* a表清零 */
{
for (j = ; j < ; j++)
{
a[i][j] = ;
}
} for (i = ; i < ; i++) /* b表清零 */
{
for (j = ; j < ; j++)
{
b[i][j] = ;
}
} for (i = ; i < ; i++) /* c表清零 */
{
for (j = ; j < ; j++)
{
c[i][j] = ;
}
} do {
scanf("%d %d", &m, &n);
a[m][] = m;
c[m][] = m;
a[m][] = n;
} while (m != ); /* 输入a表,输入c表的第0列幂,不输入c表的第1列系数 */ do {
scanf("%d %d", &m, &n);
b[m][] = m;
c[m][] = m;
b[m][] = n;
} while (m != ); /* 输入b表,输入c表的第0列幂,不输入c表的第1列系数 */ for (i = , j = ; i < ; i++) /* 统计c表的第1列系数 */
{
c[i][] = a[i][] + b[i][];
} for (i = ; i > ; i--) /* 从c表的第100行开始循环,一直到第2行 */
{
if (c[i][] != ) /* 只统计c表第1列系数不为0 */
{
if (c[i][] == ) /* 如果c表第1列系数==1,比如40 1 */
{
if (cnt > ) /* 如果输出超过一次,记得前面加正号+ */
{
printf("+");
}
printf("x%d", c[i][]); /* 输出x40 */
}
else if (c[i][] == -) /* 如果c表第1列系数==-1,比如40 -1 */
{
printf("-x%d", c[i][]); /* 前面加负号-,系数-1省略,输出-x40 */
}
else /* 其他情况,c表第1列系数不等于1,也不等于-1 */
{
if (c[i][] < )
{
printf("%dx%d", c[i][], c[i][]); /* 系数小于0,直接输出 */
}
else
{
if (cnt > )
{
printf("+"); /* 如果系数大于0,需要考虑是否第一次输出,不是第一次输出,需要前面加正号+ */
}
printf("%dx%d", c[i][], c[i][]);
}
}
cnt++;
}
} if (c[][] != ) /* c表第1行第1列系数不等于0 */
{
{
if (c[][] == ) /* 如果c表第1列系数==1 */
{
if (cnt > )
{
printf("+"); /* 如果输出超过一次,记得前面加正号+ */
}
printf("x");
}
else if (c[][] == -) /* 如果c表第1列系数==-1 */
{
printf("-x");
}
else
{
if (a[][] > && cnt > ) /* 如果系数大于0,需要考虑是否第一次输出,不是第一次输出,需要前面加正号+ */
{
printf("+"); /* 如果输出超过一次,记得前面加正号+ */
}
printf("%dx", c[][]);
}
cnt++;
}
} if (c[][] != )
{
if (cnt > )
{
printf("+"); /* 如果系数大于0,需要考虑是否第一次输出,不是第一次输出,需要前面加正号+ */
}
printf("%d", c[][]);
cnt++;
} if (cnt == )
{
printf("");
}
}

网易云课堂_程序设计入门-C语言_第六章:数组_1多项式加法的更多相关文章

  1. 网易云课堂_程序设计入门-C语言_第四周:循环控制_1素数和

    1 素数和(5分) 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个 ...

  2. 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值

    2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...

  3. 网易云课堂_程序设计入门-C语言_第三周:循环_1奇偶个数

    1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,1 ...

  4. 网易云课堂_程序设计入门-C语言_第二周:判断_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  5. 网易云课堂_程序设计入门-C语言_第二周:判断_1时间换算

    1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果 ...

  6. 网易云课堂_程序设计入门-C语言_第一周:简单的计算程序_1逆序的三位数

    1 逆序的三位数(5分) 题目内容: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 输入格式: 每个测试是一个3 ...

  7. 网易云课堂_程序设计入门-C语言_期末考试编程题

    1 字数统计(10分) 题目内容: 你的程序要读入一篇英文文章,然后统计其中的单词数来输出.需要统计的数据为: 总的单词数量: 含有1个字母到10个字母的单词的数量. 单词和单词的间隔是由以下标点符号 ...

  8. 网易云课堂_程序设计入门-C语言_第七周:指针与字符串_2GPS数据处理

    2 GPS数据处理(6分) 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The N ...

  9. 网易云课堂_程序设计入门-C语言_第六章:数组_2鞍点

    2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...

随机推荐

  1. ARM和X86功耗差别的深层原因探讨

    ARM和X86功耗差别的深层原因探讨 ARM和X86功耗的差别一直是个很热的话题.ARM可以做的很低,甚至1瓦都不到.而X86服务器的芯片可以达到100-200瓦,就算是嵌入式处理器Atom系列也需要 ...

  2. Logstash type来标记事件类型,通过type判断

    /*************** 根据type判断 input { file { type => "zj_frontend_access" path => [" ...

  3. C语言的本质(20)——预处理之二:条件预处理和包含头文件

    我们可以通过定义不同的宏来决定编译程序对哪些代码进行处理.条件编译指令将决定那些代码被编译,而哪些是不被编译的.可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件. 条件编译可分为三种情况,按 ...

  4. Unix/Linux环境C编程入门教程(22) C/C++如何获取程序的运行时间

    1.问:知道程序运行时间我们可以做什么? 在<C++应用程序性能优化>一书中,如果大家读过相信大家一定对性能优化这一块非常上心,文中总是对优化前后的时间对比非常直观给我们一个感受. 那么我 ...

  5. Easyui tree 开启拖放后 在IE下 性能惨不忍睹

    项目中加载一个树结构代码如下 //加载树 function LoadTree() { var url = "../Ajax/StationTree.ashx?showVirtual=1&qu ...

  6. 实际用户ID,有效用户ID和设置用户ID

    摘自http://blog.csdn.net/guosha/article/details/2679334 实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没 ...

  7. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  8. OAuth2.0开发指南

    OAuth2.0开发指南 1.认证与登录 来往开放平台支持3种不同的OAuth 2.0验证与授权流程: 服务端流程(协议中Authorization Code Flow): 此流程适用于在Web服务端 ...

  9. 代理方法keywordAction与Fun的使用

    代理是一种特殊的,指向某个方法模块所在的地址.一般来讲,那个方法模块,能够是一个普通的方法,很多其它的时候,是一团匿名的lamda表达式,即一个匿名方法.如今简单理解一下代理的简写方式,即Action ...

  10. sticker.js贴纸效果

    http://stickerjs.cmiscm.com/ <div class="sticker gbtags"></div> <!-- 引用Java ...