多项式乘法:
用一个数组储存相乘后的到的元素
使用double型的数组,下标表示指数,対应的值表示系数。
#include<stdio.h>
#include<math.h>
typedef struct{
int expon;
double coef;
}poly;
poly a[15],b[15];
double ans[2008];
int k1,k2,cnt=0;
void Input()
{
scanf("%d",&k1);
for(int i=0;i<k1;i++)
{
scanf("%d %lf",&a[i].expon,&a[i].coef);
}
scanf("%d",&k2);
for(int i=0;i<k2;i++)
{
scanf("%d %lf",&b[i].expon,&b[i].coef);
}
}
int main()
{
Input();
for(int i=0;i<k1;i++){
for(int j=0;j<k2;j++){
ans[a[i].expon+b[j].expon] += a[i].coef*b[j].coef;
}
}
for(int i=0;i<2005;i++){
if(fabs(ans[i])>0)
cnt++;
}
printf("%d",cnt);
for(int i=2000;i>=0;i--){
if(fabs(ans[i])>0){
printf(" %d %.1lf",i,ans[i]);
}
}
printf("\n");
return 0;
}