码迷,mamicode.com
首页 > 其他好文 > 详细

PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘

时间:2017-04-18 16:01:58      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:class   nbsp   include   div   size   eof   iostream   pen   amp   

多项式相乘

注意相乘结果的多项式要开两倍的大小!!!

技术分享
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string.h>
using namespace std;
//两个多项式相乘
const int maxn=1000+5;
int k;
//原本定义个exp导致编译错误,没想到定义成exp1、exp2也会编译错误,估计引起函数名冲突了
double exps1[maxn];
double exps2[maxn];
int main()
{
    memset(exps1,0,sizeof(exps1));
    memset(exps2,0,sizeof(exps2));
    int ee;
    double val;
    scanf("%d",&k);
    for(int i=0;i<k;i++){
        scanf("%d %lf",&ee,&val);
        exps1[ee]=val;
    }
    scanf("%d",&k);
    for(int i=0;i<k;i++){
        scanf("%d %lf",&ee,&val);
        exps2[ee]=val;
    }
    double ans[maxn*2]; //注意这里要开2倍的大小
    memset(ans,0,sizeof(ans));
    for(int i=0;i<maxn;i++){
        for(int j=0;j<maxn;j++){
            ans[i+j]+=exps1[i]*exps2[j];
        }
    }
    int cnt=0;
    for(int i=0;i<maxn*2;i++){
        if(ans[i]!=0)
            cnt++;
    }
    printf("%d",cnt);
    for(int i=maxn*2-1;i>=0;i--){
        if(ans[i]!=0){
            printf(" %d %.1lf",i,ans[i]);
        }
    }
    return 0;
}
View Code

 

PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘

标签:class   nbsp   include   div   size   eof   iostream   pen   amp   

原文地址:http://www.cnblogs.com/chenxiwenruo/p/6727906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!