1002. A+B for Polynomials(25)—PAT 甲级
This time,you are supposed to find A+B where A+B are two polynomials.
Input##
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a
polynomial: K N1 aN1 N2 aN2 ... Nk aNK, Where k is the number of nonezero terms in the polynomial, Ni and aNi (i = 1 , 2,..., k) are the exponents and coefficients, respectively . It is given that 1< = K < = 10,0< = NK < ... < N2 < N1 <= 1000.
Output##
For each test case you should output the sum of A and B in one line, with the same format asthe input . Notice
that there must be No extra space at the end of each line. Please be accurate to 1 decimal place.
Sample Input##
2 1 2.4 0 3.2 2 2 1.5 1 0.5
Sample Output##
3 2 1.5 1 2.9 0 3.2
题目大意:多项式合并同类项,按输入格式输出最后多项式的项数、各项的指数和系数。
分析:构造一个整型数组存放多项式的系数,输入时将相同指数的系数累加,如果累加之前数组存放的值为0,那么多项式的项数加1;如果累加之后等于0,那么多项式的项数减一。注意:多项式的指数都是整数,不要瞎想了~
#include <iostream>
using namespace std;
double s[1005]={0};
int main() {
int k,n,time=2,count=0;
double ak;
while(time--){
scanf("%d",&k);
while(k--){
scanf(" %d %lf",&n,&ak);
if(s[n]==0)count++;
s[n]+=ak;
if(s[n]==0)count--;
}
}
printf("%d",count);
for(int i=1005;i>=0;i--){
if(s[i]!=0){
printf(" %d %.1lf",i,s[i]);
}
}
printf("\n");
return 0;
}
最新文章
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
- [.net 面向对象编程基础] (7) 基础中的基础——流程控制语句
- 20145209&;20145309信息安全系统设计基础实验报告 (3)
- 局域网单机部署双tomcat内外网不能访问防火墙问题查出来
- maven eclipse miss required library解决
- Feistel密码结构
- WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1(WTSGetActiveConsoleSessionId取得session的Id,OpenProcessToken取得进程的令牌)
- 3.5 spring-replaced-method 子元素的使用与解析
- 泥鳅般的const(一个小Demo彻底搞清楚)
- Zigbee协议栈OSAL层API函数【转载】
- informatica9 安装下载,安装教程 介质(文章和视频教程)(csdn讲师:Array)
- UNIX网络编程——并发服务器(TCP)
- Android数据库Realm实践
- Spring2.5整合Ibatis入门级开发实例
- Python 实现文件复制、删除
- 如何使用idea给系统平台添加子应用和应用的模块
- 深入Java内存模型之阅读理解(1)
- inbox.MoveTo Folder does not move message out of inbox
- error C2504: “XXXXXXX”: 未定义基类
- JavaScript 中语法规范及调试