pat-A1002-A+B for Polynomials

题目链接->link

题意描述

计算多项式A+B的结果。

思路

  1. 分别用a[e]=t,b[e]=t存储多项式A、B指数为e的系数t。
  2. 比较出A,B指数最大的值。
  3. 累计A,B中不为0的项数。
  4. 注意输出格式即可。

代码

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>

using namespace std;

int main(){
    double a[1005]={0},b[1005]={0},sum[1005]={0},t;
    int A,B,i,e,maxa=0,maxb=0;//e指数,t系数
    scanf("%d",&A);
    while(A--){
        scanf("%d%lf",&e,&t);
        if(e>maxa)maxa=e;
        a[e]=t;
    }
    scanf("%d",&B);
    while(B--){
        scanf("%d%lf",&e,&t);
        if(e>maxb)maxb=e;
        b[e]=t;
    }
    int max;
    max=maxa>=maxb?maxa:maxb;//求得指数最大的项
    int count=0;
    for(i=max;i>=0;i--){
        sum[i]=a[i]+b[i];
        if(sum[i]!=0)count++;//统计系数不为0的项数
    }
    printf("%d",count);
    for(i=max;i>=0;i--){
        if(sum[i]!=0)printf(" %d %.1f",i,sum[i]);
    }
    printf("\n");
    return 0;
}

发布了28 篇原创文章 · 获赞 1 · 访问量 591

猜你喜欢

转载自blog.csdn.net/MichealWu98/article/details/104045573