1. 程式人生 > >1009 Product of Polynomials

1009 Product of Polynomials

clu color int amp spa pro 大於 題目 include

題意:模擬多項式相乘

思路:略。有一個註意點,題目中說指數最大為1000,當兩個多項式相乘後,指數最大就為2000,這一點不註意會出現段錯誤。

代碼:

#include <cstdio>
const int N=2005;//註意N必須大於等於2000,而不能是1000
struct Term{
    double coe;//系數
    int exp;//指數
}a[100],b[100];

int main()
{
    //freopen("pat.txt","r",stdin);
    int ka,kb;
    scanf("%d",&ka);
    for(int i=0;i<ka;i++)
        scanf(
"%d%lf",&a[i].exp,&a[i].coe); scanf("%d",&kb); for(int i=0;i<kb;i++) scanf("%d%lf",&b[i].exp,&b[i].coe); double product[N]={0};//下標存放指數,對應的值代表系數 for(int i=0;i<ka;i++){ for(int j=0;j<kb;j++){ int exp=a[i].exp+b[j].exp; double
coe=a[i].coe*b[j].coe; product[exp]+=coe; } } int len=0; for(int i=0;i<N;i++){ if(product[i]!=0) len++; } printf("%d",len); for(int i=N-1;i>=0;i--){ if(product[i]!=0) printf(" %d %.1f",i,product[i]); } return 0; }

1009 Product of Polynomials