pat-1009 Product of Polynomials (25分)

在这里插入图片描述
与1002的多项式相加类似。
其实我在做得时候还是发现,自己对数组的理解还是不都深刻。通过索引映射出索引位置的值。
在这一道题目里,次数对应的是所应项,系统就是索引所对应的值。

#include <iostream>
const int N=1010,M=2020;
//注意,最终的目标数组一定要注意,因为不注意就会出现越界情况 
double a[N],b[N],c[M];
using namespace std;
int main(){
	int k;
	cin>>k;
	while(k--){
		int n;//次数 
		double v;//系数 
		cin>>n>>v;
		a[n]=v; 
	}
	cin>>k;
	while(k--){
		int n;//次数 
		double v;//系数 
		cin>>n>>v;
		b[n]=v; 
	}
	//多项式前面的系数去进行相乘 
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			//去用一个循环 
			c[i+j]+=b[j]*a[i];//注意这个多项式的总结 
		}
	} 
	int cnt=0;
	for(int i=0;i<M;i++){
		if(c[i])
			cnt++;
	} 
	cout<<cnt;
	for(int i=M-1;i>=0;i--){
		if(c[i])
			printf(" %d %.1f",i,c[i]);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44110100/article/details/106904098