PAT甲级——1009 Product of Polynomials (25分)(最后一个测试点段错误)
程序员文章站
2024-03-21 23:44:40
...
思路:我记得乙级有一道题是多项式相加,这里是相乘,差不多的
借鉴木桶排序的思想,定义一个木桶数组,木桶的下标代表指数,元素值代表系数
数组开小了后面三个测试点都会段错误
我还有一个段错误想不明白,如果有路过的dalao麻烦指点一下
#include <iostream>
#include <algorithm>
using namespace std;
static const int MAX=2010;
struct P{
int exp;//指数
float coef;//系数
};
float bucket[MAX];
int main(){
int a1,a2,num=0;
P p1[10],p2[10];
cin>>a1;
for(int i=0;i<a1;i++)
cin>>p1[i].exp>>p1[i].coef;
cin>>a2;
for(int i=0;i<a1;i++)
cin>>p2[i].exp>>p2[i].coef;
for(int i=0;i<a1;i++)
for(int j=0;j<a2;j++)
bucket[p1[i].exp+p2[j].exp] += (p1[i].coef*p2[j].coef);
for(int i=MAX;i>=0;i--)
if(bucket[i]!=0)
num++;
cout<<num<<" ";
for(int i=MAX;i>=0;i--)
if(bucket[i]!=0){
num--;
if(num)
printf("%d %.1f ",i,bucket[i]);
else
printf("%d %.1f",i,bucket[i]);
}
cout<<endl;
return 0;
}
上一篇: hdu第五周二分笔记
下一篇: 接口测试总结与分享