PAT(Advanced) 1002 A+B for Polynomials C++实现

PAT(Advanced) 甲级1002 A+B for Polynomials C++实现

题目链接

PAT(Advanced)1002 A+B for Polynomials

题目大意

给定两个多项式,求出其和

算法思路

设置一个数组,下标作阶码,累加即可!

AC代码

#include <bits/stdc++.h>
using namespace std;
const int MAX_SIZE = 1000 + 10;
int main(int argc, char const *argv[])
{
    int K;
    float polynomials[MAX_SIZE] = {0};
    int maxExponent = -1;
    for (int i = 0; i < 2; i++) {
        cin >> K;
        for (int j = 0; j < K; j++) {
            int exponent;
            float coefficient;
            cin >> exponent >> coefficient;
            polynomials[exponent] += coefficient;
            maxExponent = max(maxExponent, exponent);
        }
    }
    int cnt = 0;
    for (int i = maxExponent; i >= 0; i--) {
        if (polynomials[i] != 0) {
            cnt++;
        }
    }
    printf("%d", cnt);
    for (int i = maxExponent; i >= 0; i--) {
        if (polynomials[i] != 0) {
            printf(" %d %.1f", i, polynomials[i]);
        }
    }
    return 0;
}

样例输入

2 1 2.4 0 3.2
2 2 1.5 1 0.5

样例输出

3 2 1.5 1 2.9 0 3.2

鸣谢

感谢PAT提供的题目及测评平台!

最后

本题为简单题,注意一些边界情况即可!

由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!

发布了13 篇原创文章 · 获赞 4 · 访问量 299

猜你喜欢

转载自blog.csdn.net/qq_44486439/article/details/105150822