zoukankan      html  css  js  c++  java
  • 【PAT】1009. Product of Polynomials (25)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1009

    分析:简单题。相乘时指数相加,系数相乘即可,输出时按指数从高到低的顺序。注意点:多项式相乘后指数最高可达2000。

    题目描述:

    This time, you are supposed to find A*B where A and B are two polynomials.

    Input Specification:

    Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:K N1 aN1 N2 aN2 ... NK aNK, where K is the number of nonzero terms in the polynomial, Ni and aNi (i=1, 2, ..., K) are the exponents and coefficients, respectively. It is given that 1 <= K <= 10, 0 <= NK < ... < N2 < N1 <=1000.

    Output Specification:

    For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

    Sample Input
    2 1 2.4 0 3.2
    2 2 1.5 1 0.5
    
    Sample Output
    3 3 3.6 2 6.0 1 1.6
    

    参考代码:

    #include<iostream>
    #include<iomanip>
    #include<string.h>
    using namespace std;
    
    #define max 1000
    double input1[max + 1];
    double input2[max + 1];
    double result[2*max + 1];
    
    int main()
    {
    	memset(input1,0,sizeof(input1));
    	memset(input2,0,sizeof(input2));
    	memset(result,0,sizeof(result));
    	int k;
    	int i,j;
    	int e;
    	//int temp=0; //记录最高指数
    	double c;
    	int count = 0; //最终输出的多项式的项数。
    	cin>>k;
    	for(i=0; i<k; i++)
    	{
    		cin>>e>>c;
    		input1[e] += c;
    	}
    	cin>>k;
    	for(i=0; i<k; i++)
    	{
    		cin>>e>>c;
    		input2[e] += c;
    	}
    
    	for(i=0; i<=1000; i++)
    	{
    		for(j=0; j<=1000; j++)
    		{
    			result[i+j] += input1[i]*input2[j];
    		}
    	}
    	for(i=0; i<=2000; i++) if(result[i] != 0) count++;
    	cout<<count;
    	for(i=2000; i >= 0; i--)
    	{
    		if(result[i] != 0.0) {
    			cout<<" "<<i;
    			cout<<fixed<<setprecision(1);
    			cout<<" "<<result[i];
    		}
    	}
    	cout<<endl;
    	return 0;
    }


  • 相关阅读:
    mysql触发器实时检测一条语句进行备份删除
    ORA-12560: TNS: 协议适配器错误 windows
    DG:windows密码文件
    vim already exists!
    k8s 集群升级
    部署 k8s 备份工具 velero
    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
    lens 添加 k8s 集群
    redis系列
    s3c2440裸机-I2c编程-3.i2c中断服务程序
  • 原文地址:https://www.cnblogs.com/riskyer/p/3278144.html
Copyright © 2011-2022 走看看