题目粗心:
给出两行,每行示意一个多项式:第一个数示意该多项式中系数非零项的项数,前面每两个数示意一项,这两个数别离示意该项的幂次和系数。
试求两个多项式的和,并以与后面雷同的格局输入后果。
算法思路:
咱们在输出A和B的时候应用result保留A加B,让result的下标对应指数,其值为系数,而后输出A的时候暂存A,而后输出B的时候,间接对应下标相加即可。而后第一次遍历result统计不为0的项数num,而后再次从后往前遍历数组result,将其系数不为0的项输入。
留神点:
1、须要保留一位小数
2、空格的输入
3、result得初始化,不然对于其值是否为0来判断须要输入就行不通了。
提交后果:
AC代码:
#include<cstdio>using namespace std;int main(){ int K; double result[1001] = {};// result[i]保留的是i次方的系数,肯定要初始化{},不然会出错 int N; double AN;//次方和系数 for(int j=0;j<2;++j){ scanf("%d",&K); for(int i=0;i<K;++i){ scanf("%d %lf",&N,&AN); result[N] += AN; } } int num = 0;//系数不为0的项数 for(int i=1000;i>=0;--i){ if(result[i]!=0){ // 系数不为0 ++num; } } printf("%d",num); for(int i=1000;i>=0;--i){ if(result[i]!=0){ // 系数不为0 printf(" %d %.1lf",i,result[i]); } } return 0;}