当前位置: 代码迷 >> 综合 >> PAT1009 Product of Polynomials
  详细解决方案

PAT1009 Product of Polynomials

热度:75   发布时间:2023-11-08 14:48:37.0

分析:多项式相乘。水题。
(1)养成初始化的好习惯。
(2)注意数组开的大小,越界的情况。先前maxn开的太大,下面有两层的for循环,肯定是不行的。

#include<bits/stdc++.h>
#define maxn 1010
using namespace std;
double a[maxn],b[maxn],c[2100];
int ha[maxn],ans=0;
int main(){
    memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));int len1,len2;cin>>len1;for(int i=0;i<len1;i++){
    int k;double x;cin>>k>>x;a[k]=x;}cin>>len2;for(int i=0;i<len2;i++){
    int k;double x;cin>>k>>x;b[k]=x;}for(int i=0;i<maxn;i++){
    if(a[i]==0) continue;for(int j=0;j<maxn;j++){
    if(b[j]==0) continue;c[i+j]+=a[i]*b[j]*1.0;}}for(int i=0;i<=2010;i++){
    if(c[i]!=0) {
    ans++;}}cout<<ans;for(int i=2010;i>=0;i--){
    if(c[i]!=0){
    printf(" %d %.1f",i,c[i]);}}cout<<endl;return 0;
}
  相关解决方案