1002. A+B for Polynomials (25)
2015-09-04 09:45
309 查看
This time, you are supposed to find A+B where A and 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 nonzero 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 as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.
#include<stdio.h>
#include<math.h>
int main()
{
float a[10],b[10],c[10];
int k,t,i,temp,count=0;
for(i=0;i<10;i++)//赋初值
{
a[i]=0;
b[i]=0;
c[i]=0;
}
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&temp);
scanf("%f",&a[temp]);
}
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&temp);
scanf("%f",&b[temp]);
}
for(i=0;i<10;i++)
{
c[i]=a[i]+b[i];
if(c[i]!=0) count++;
}
if(count==0) count==1;
printf("%d ",count);
for(i=9;i>0;i--)
{
if(c[i]!=0) printf("%d %.1f",i,c[i]);
}
printf("%d %.1f\n",i,c[0]);
return 0;
}
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 nonzero 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 as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.
#include<stdio.h>
#include<math.h>
int main()
{
float a[10],b[10],c[10];
int k,t,i,temp,count=0;
for(i=0;i<10;i++)//赋初值
{
a[i]=0;
b[i]=0;
c[i]=0;
}
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&temp);
scanf("%f",&a[temp]);
}
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&temp);
scanf("%f",&b[temp]);
}
for(i=0;i<10;i++)
{
c[i]=a[i]+b[i];
if(c[i]!=0) count++;
}
if(count==0) count==1;
printf("%d ",count);
for(i=9;i>0;i--)
{
if(c[i]!=0) printf("%d %.1f",i,c[i]);
}
printf("%d %.1f\n",i,c[0]);
return 0;
}
相关文章推荐
- hdu 3045 Picnic Cows 斜率优化 dp中有间隔限定
- 11个超棒的iOS开发学习网站
- 【翻译自mos文章】对于JDBC thin client连接,ORA-28040 and SQLNET.ALLOWED_LOGON_VERSION_CLIENT
- CSS中float属性和clear属性的一些笔记
- SQL-mysql设置utf8编码方法
- CentOS7防火墙关闭与配置
- 剑指offer之两个栈模拟队列操作
- JQuery选择器大全
- java设计模式之面向对象思想
- 揭开Socket编程的面纱
- Thinkphp 模型与表名定义
- JAVA学习中常用的三种排序
- 【Android】2015.09.02 第一行代码 Day3 Count:5
- sort与priority_queue的比较标准差异
- C++和Java中枚举enum的用法
- 配置了SSL 的web服务器,如何实现启动服务的时候自动输入密码
- Java并发编程(你不知道的线程池操作)
- hihocoder1143矩阵快速幂 & hihocoder 1051 & hihocoder 1049 & hihocoder1066
- [LeetCode] Populating Next Right Pointers in Each Node I, II
- css命名规范