您的位置:首页 > 其它

PAT1009Product of Polynomials (25)

2016-05-11 16:35 344 查看
This time, you are supposed to find A*B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 … NK aNK, where K is the number of nonzero terms in the polynomial, Ni and aNi (i=1, 2, …, K) are the exponents and coefficients, respectively. It is given that 1 <= K <= 10, 0 <= NK < … < N2 < N1 <=1000.

Output Specification:

For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

Sample Input2 1 2.4 0 3.2

2 2 1.5 1 0.5

Sample Output3 3 3.6 2 6.0 1 1.6

struct  NUM
{
int exp;
int coe;
};
void PAT1009Apro(){
int n = 0,i=0,len1=0,len2=0,sum=0;
scanf("%d", n);
len1 = n;
NUM *num1 = new NUM
;

while (n--){
scanf("%d", num1[i].exp);
scanf("%d", num1[i].coe);
++i;
}

scanf("%d", n);
len2 = n;
NUM *num2 = new NUM
;
while (n--){
scanf("%d", num2[i].exp);
scanf("%d", num2[i].coe);
++i;
}
int len3 = len1*len2,k=0;
NUM*num3 = new NUM[len3];
for (i = 0; i < len1; ++i){
for (int j = 0; j < len2; ++j){
num3[k].coe = num1[i].coe*num2[j].coe;
num3[k].exp = num1[i].exp*num1[j].exp;
++k;
}
}
for (i = 0; i <= k; ++i){
if (num3[k].coe)++sum;
}
printf("%d", sum);
for (i = 0; i <= k; ++i){
if (num3[k].coe)printf("%d %.1lf", num3[i].exp, num3[i].coe);
}
}


解法二

int n, x, cnt;
int a[1000] = { 0 }, b[1000] = { 0 }, c[2008] = { 0 };
scanf("%d", &n);
while (n--){
scanf("%d", &x);//指数
scanf("%lf", &a[x]);//系数
}
scanf("%d", &n);
while (n--){
scanf("%d", &x);
scanf("%lf", &b[x]);
}
for (int i = 0; i < 1001; ++i){
for (int j = 0; j < 1001; ++j)
c[i + j] = a[i] * b[j];//系数相乘,指数相加
}
for (int i = 0; i < 2001; i++) if (c[i] != 0) cnt++;
printf("%d", cnt);
for (int i = 2000; i >= 0; i--)
if (c[i] != 0) printf(" %d %.1lf", i, c[i]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: