• 【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;
    }


  • 相关阅读:
    Linux 查看端口占用情况
    Linux 的 ls 和 ll 的使用方法:
    awk文本分析
    【Linux】/etc/passwd文件中字段解释
    vue学习笔记(八)---源码学习
    uniapp学习笔记(更新中)
    微信小程序学习
    哈希表的原理
    容器通常具备一些固定的方法
    字符串的方法
  • 原文地址:https://www.cnblogs.com/pangblog/p/3279789.html
Copyright © 2020-2023  润新知