PAT甲级1009 Product of Polynomials:[C++题解]多项式乘法、高精度乘法
生活随笔
收集整理的這篇文章主要介紹了
PAT甲级1009 Product of Polynomials:[C++题解]多项式乘法、高精度乘法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目分析
- 題目鏈接
題目分析
多項用一個數組來表示,數組下標表示多項式的次冪,存的內容表示多項式的系數。
然后用兩重循環來計算多項式的乘法:
for i : 第二個式子for j:第一個式子c[i+j] += a[i] * b[j] 什么意思? 一個多項式的 i次方 和另一個多項式的j次方相乘,得到的是 i+j次方,系數是兩者系數的乘積ac代碼
#include<bits/stdc++.h> using namespace std;const int N =1010;double a[N], b[N], c[2*N];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]+= a[i] * b[j];}}int cnt = 0; // c數組中非零項的個數for( int i = 0 ;i< 2*N; i++) if(c[i]) cnt++;cout<<cnt;//倒序遍歷,因為先輸出次冪大的系數for( int i = 2*N -1 ;i>= 0 ; i--){if(c[i])printf(" %d %.1lf", i , c[i]);}}題目鏈接
PAT甲級1009 Product of Polynomials
總結
以上是生活随笔為你收集整理的PAT甲级1009 Product of Polynomials:[C++题解]多项式乘法、高精度乘法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT甲级1002 A+B for Po
- 下一篇: PAT甲级1023 Have Fun w