PTA 1009 Product of Polynomials

 注意:

1.答案数组开到2001,因为两个最高幂次为1000的多项式相乘,最高幂次可以达到2000。

2.没必要开两个数组,第二个多项式可以边读入边处理。

#include
double a[1010];

double c[2001];
int main(){
  int k1,k2,n,num=0;
  double an;
  scanf("%d",&k1);
  while(k1--){
    scanf("%d %lf",&n,&an);
    a[n]=an;
  }
  scanf("%d",&k2);
  while(k2--){
    scanf("%d %lf",&n,&an);
    for(int i=0;i<1001;i++){
      if(a[i]!=0){
        c[n+i]+=an*a[i];
      }
    }
  }
  for(int i=0;i<=2000;i++){
    if(c[i]!=0.0) num++;
  }
  printf("%d",num);
  for(int i=2000;i>=0;i--){
    if(c[i]!=0.0){
      printf(" %d %.1f",i,c[i]);
    }
  }
  return 0;
}

 

你可能感兴趣的:(PTA)