1009. Product of Polynomials (25)

来源:互联网 发布:网络定向天线 编辑:程序博客网 时间:2024/04/29 11:39
#include<cstdio>#include<cstring>#define MAX 2001int main(){    int n1, n2,n3=0;// <10    double p1[MAX];    double p2[MAX];    double p3[MAX];    memset(p1, 0, sizeof(p1));    memset(p2, 0, sizeof(p2));    memset(p3, 0, sizeof(p3));    scanf("%d", &n1);    for (int i = 0; i < n1;i++)    {        int tem;        scanf("%d", &tem);        scanf("%lf", &p1[tem]);    }    scanf("%d", &n2);    for (int i = 0; i < n2;i++)    {        int tem;        scanf("%d", &tem);        scanf("%lf", &p2[tem]);    }    for (int i = 0; i < MAX; i++)    for (int j = 0; j < MAX;j++)    {        if (p1[i] != 0&&p2[j]!=0)        {            p3[i + j] += (p1[i] * p2[j]);        }    }    for (int i = 0; i < MAX; i++)    {        if (p3[i] != 0)            n3++;    }    printf("%d", n3);    for (int i = MAX-1; i >=0;i--)    if (p3[i] != 0)        printf(" %d %.1lf",i, p3[i]);    return 0;}

注意:系数数组要至少开到2001,因为两个最高幂次为1000的多项式相乘,最高次幂可达到2000

0 0