zoukankan      html  css  js  c++  java
  • PAT甲级真题打卡:1002. A+B for Polynomials

    题目:

    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

    参考代码:

    #include <stdio.h>
    #include <string.h>
    using namespace std;

    double a[1002];
    double b[1002];


    int main(void) {
    int n, i, temp;
    memset(a,0, sizeof(a));
    memset(b,0, sizeof(b));
    scanf("%d", &n);
    for(i = 0; i <= n; i++) {
    scanf("%d", &temp);
    scanf("%lf", &a[temp]);
    }
    scanf("%d", &n);
    for(i = 0; i < n; i++) {
    scanf("%d", &temp);
    scanf("%lf", &b[temp]);
    }
    int count = 0;
    for (i = 0; i < 1002; i++) {
    a[i] += b[i];
    if(a[i] != 0)
    count++;
    }
    printf("%d",count);
    for(i = 1001; i >= 0; i--) {
    if(a[i] != 0) {
    count--;
    printf(count==0?" %d %.1f ":" %d %.1f", i, a[i]);
    }
    }
    return 0;
    }

    分析:

    这是一个比较简单的多项式题目,只要看懂了题就可以迎刃而解。这题关键在于输入输出。

    1.不能有空格

    2.多项式相加系数为0时如何处理。

  • 相关阅读:
    Day 25 网络基础2
    Day 25 网络基础
    Day 24 定时任务
    Day 23 系统服务之救援模式
    Day4 总结
    Day 22 进程管理2之系统的平均负载
    【Distributed】分布式Session一致性问题
    【Distributed】分布式系统中遇到的问题
    【Redis】分布式Session
    【Zookeeper】应用场景概述
  • 原文地址:https://www.cnblogs.com/ton2018/p/8982068.html
Copyright © 2011-2022 走看看