系数求和问题(模拟)

来源:互联网 发布:keygen注册机下载 mac 编辑:程序博客网 时间:2024/06/05 20:48

题意:给你个N,表示有N项,然后给出每一项的X的幂以及系数,求两个一元多次多项式之和,输出项数以及按高次分别输出幂和系数

纯模拟!用数组存下来,地址为幂,值为系数。

#include <stdio.h> #include <memory.h> #include <math.h> #define MAX 1001 #define MAXN 21 #define EPS 0.05 int n,nk; double nA[MAX],nB[MAX],nC[MAX]; double Dout[MAXN]; int Mout[MAXN]; void Init(); void Input(); void Add(); void vout(); int main() {     while(~scanf("%d",&n))     {         Init();         Input();         Add();         vout();     }     return 0; } void Init() {     memset(nA,0,sizeof(nA));     memset(nB,0,sizeof(nB));     memset(nC,0,sizeof(nC)); } void Input() {     int i,nmi;     double ndi;     for(i=0;i<n;i++)     {         scanf("%d%lf",&nmi,&ndi);         nA[nmi]=ndi;     }     scanf("%d",&n);      for(i=0;i<n;i++)     {         scanf("%d%lf",&nmi,&ndi);         nB[nmi]=ndi;     } } void Add() {     int i;     for(i=0;i<MAX;i++)     {         nC[i]=nA[i]+nB[i];     } } void vout() {     int i;     nk=0;     for(i=MAX-1;i>=0;i--)     {         if(nC[i]>=EPS)         {             Mout[nk]=i;             Dout[nk]=nC[i];             nk++;         }     }     if(nk>0)     {         printf("%d",nk);         for(i=0;i<nk;i++)         {             printf(" %d %.1lf",Mout[i],Dout[i]);         }         printf("\n");     }     else     {         printf("0\n");     } }  



0 0