题意:
第一个数是多项式中系数非零项的项数(个数) 最大是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;
} 注意红色部分的格式问题