• 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时如何处理。

  • 相关阅读:
    Nginx 基本命令
    Nginx配置详细
    MySQL 函数大全
    X-Frame-Options 配置
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    idea java 非web程序打包
    mysql 存储过程
    webstorm 重置所有设置
    vue input 赋值无效
    MySQL 性能优化神器 Explain 使用分析
  • 原文地址:https://www.cnblogs.com/ton2018/p/8982068.html
Copyright © 2020-2023  润新知