AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 应用
  • 更多
    • 题解
    • 分享
    • 商店
    • 问答
    • 吐槽
  • App
  • 登录/注册

AcWing 1481. PAT_多项式乘积(用数组存系数 下标为指数)    原题链接    简单

作者: 作者的头像   bobo0612 ,  2023-03-19 23:58:24 ,  所有人可见 ,  阅读 22


0


1481. 多项式乘积.png

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 1010;
double a[N], b[N], c[2 * N];

void input(double a[]){
    int k;
    cin >> k;
    while (k --){ // 读入多项式
        int x; // 指数
        double y; // 系数
        cin >> x >> y;
        a[x] = y;
    }
}

int main() {
    // 输入两个多项式
    input(a);
    input(b);

    // 两个多项式 对应位相乘
    for (int i = 0; i < N; i ++)
        for (int j = 0; j < N; j ++)
            c[i + j] += a[i] * b[j]; // 注意这里是 += 


    // 求系数非零的总项数
    int k = 0;
    for (int i = 0; i < 2 * N; i ++)
        if (c[i])
            k ++;
    cout << k;

    // 输出系数非零的所有项数 (先输出高位, 再输出低位)
    for (int i = 2 * N - 1; i >= 0; i --)
        if (c[i])
            printf(" %d %.1lf", i, c[i]);

    return 0;
}

0 评论

你确定删除吗?
1024
x

© 2018-2023 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息