• PAT 1002. A+B for Polynomials (25) 简单模拟


    1002. A+B for Polynomials (25)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    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.

    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,不输出。最后一种情况,没有存在项,输出"0 "

    源代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cmath>
     4 using namespace std;
     5 int main() {
     6     int na,nb;
     7     scanf("%d",&na);
     8     int flag[1001]={0};
     9     double res[1001]={0};
    10     int index;double data;
    11     for(int i=0;i<na;++i) {
    12         scanf("%d %lf",&index,&data);
    13         flag[index]=1;
    14         res[index]+=data;
    15     }
    16     scanf("%d",&nb);
    17     for(int i=0;i<nb;++i) {
    18         scanf("%d %lf",&index,&data);
    19         flag[index]=1;
    20         res[index]+=data;
    21     }
    22     int cnt=0;
    23     for(int i=0;i<=1000;++i) {
    24         if(flag[i]&&fabs(res[i])>1e-6)
    25             cnt++;
    26     }
    27     if(cnt==0) {
    28         printf("0");
    29     } else {
    30         printf("%d ",cnt);
    31     }
    32     for(int i=1000;i>=0;--i) {
    33         if(flag[i]&&fabs(res[i])>1e-6) {
    34             printf("%d %.1lf",i,res[i]);
    35             cnt--;
    36             if(cnt==0) {
    37                 break;
    38             } else {
    39                 printf(" ");
    40             }
    41         }
    42     }
    43     printf("
    ");
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    一些至理名言
    移除快捷方式上面那个丑陋的小箭头
    一些浏览器插件
    yahoo给出的关于网站优化的建议
    javascript 事件流
    关于mongodb的一些笔记
    WebStorm
    给go添加各种package
    工具类 util.Date 日期类
    几种简单排序算法
  • 原文地址:https://www.cnblogs.com/lemonbiscuit/p/7775968.html
Copyright © 2020-2023  润新知