欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[code] 1002 A+B for Polynomials DAY002

程序员文章站 2024-03-14 20:24:17
...

题目 甲级1002

[code] 1002 A+B for Polynomials DAY002

题意

多项式A,B相加,输出格式需注意指数从大到小,以及空格控制。

思路

这里我开始项的有点多了,我还在想 ${2^2} + 4会不会计算,纠结了半天去看了别人的题解,发现不用,就是简单的对应指数相加。这里利用到了开数组,下标与指数对应的特性。因为指数最大是1000,所以这里我就申请了大小为1001的数组。

Code in C++

#include <iostream>

double p[1001] = {0.0};
int main()
{
    int k, n;
    double a;

    // first num
    std::cin >> k;
    for (int i = 0; i < k; ++i) {
        std::cin >> n >> a;
        p[n] += a;
    }

    // second num
    std::cin >> k;
    for (int i = 0; i < k; ++i) {
        std::cin >> n >> a;
        p[n] += a;
    }

    int count = 0;
    for (int i = 0; i < 1001; ++i) {
        if (p[i] != 0)
            ++count;
    }

    std::cout << count;
    for(int i = 1000; i >=0 ; --i) {
        if (p[i] != 0) {
            printf(" %d %.1f", i, p[i]);
        }
    }
}

小结

  • 不要过度解读题目。
  • 学会利用数组下标的含义。

知识点:数组的利用

上一篇: Linux 安装 JDK1.8

下一篇: