PAT 甲级 1009 Product of Polynomials (25分)

本文介绍了一种简单的多项式乘法模拟实现方法,通过结构体存储多项式的系数和指数,并利用双重循环计算两个多项式相乘的结果。该程序能够处理较大范围内的指数值,并输出最终结果。

Note

  • 简单模拟
  • 注意因数组越界导致的段错误

Code:

#include<bits/stdc++.h>
using namespace std;

struct ploy{
	int exp[30];
	double n[30];
	int length;
};

int main(){
	#ifndef ONLINE_JUDGE
		freopen("data.txt","r",stdin);
	#endif 

	double value[2010];
	memset(value,0,sizeof(value));
	struct ploy p[2];
	int out_length=0;
	
	for(int i=0;i<2;i++){
		scanf("%d",&p[i].length);
		for(int j=0;j<p[i].length;j++){
			scanf("%d %lf",&p[i].exp[j],&p[i].n[j]);
		}
	}
	
	int ex;
	for(int i=0;i<p[0].length;i++){
		for(int j=0;j<p[1].length;j++){
			ex=p[0].exp[i]+p[1].exp[j];
			value[ex]+=p[0].n[i]*p[1].n[j];
		}
	}
	
	for(int i=0;i<2010;i++){
		if(value[i]!=0) out_length++;
	}
	
	printf("%d",out_length);
	for(int j=2009;j>=0;j--){
		if(value[j]!=0){
			printf(" %d %.1lf",j,value[j]);
		}
	}
	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值