1002. A+B for Polynomials

xiaoxiao2021-02-28  90

题意:

第一个数是多项式中系数非零项的项数(个数)   最大是10

 后面两个数表示一项,分别是幂数和系数

2.4x+3.2

1.5x^2 + 0.5x

思路:

1 输入 int 一个k记录输入的非零项个数。double型数组p【maxn】 0-1000表示幂次为0-1000的项的系数 对每次输入,直接计入p[n]中。

2 int一个count表示系数非零项的个数初值为0 for循环 p中不为0的项  count++,输出count 输出 double数组p【n】

注意:

1 输出是降幂排序 格式上要保留一位小数 accurate to 1 decimal place

2 读入过程就count计数 会有正负抵消的问题。

#include <cstdio> const int maxn = 1111; int main(){ int k,n,count=0; double p[maxn]={}; double a; scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d %lf",&n,&a); p[n] +=a; } scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d %lf",&n,&a); p[n] +=a; } for(int i=0;i<maxn;i++){ if(p[i]!=0){ count++; } } printf("%d",count); for(int i=maxn-1;i>=0;i--){ if(p[i]!=0) printf(" %d %.1f",i,p[i]); } return 0; } 注意红色部分的格式问题
转载请注明原文地址: https://www.6miu.com/read-2621257.html

最新回复(0)