题意:模拟多项式相加。
思路:
方法1、建立一个结构体表示每一项。然后分别输入多项式a、b。由于输入的顺序是按照指数递减的,因此在执行a+b的时候,可以使用双指针法,当遇到指数相同的项数,将两者的系数相加。不过需要注意,系数之和为0的情况。
方法2、建立一个double p[N],初始化为0,其中p[exp]表示指数为exp的系数。每读入一项,只要执行p[exp] += coe;就好了。最后输出的时候,逆序输出,因为要求指数大的放前面。这一种方法代码量少很多。
代码1:
#includestruct Term{ double coe;//系数 int exp;//指数}a[100],b[100],sum[100];int main(){ //freopen("pat.txt","r",stdin); int ka,kb; scanf("%d",&ka); for(int i=0;i
代码2:
#includeconst int N = 1100;int main(){ double p[N]={ 0};//p[exp]表示指数为exp的系数 int k; int exp;//指数 double cof;//系数 scanf("%d",&k); for(int i=0;i =0;i--){ if(p[i] != 0) printf(" %d %.1f",i, p[i]); } return 0;}