A1002。多項式のためのA + B

タイトル説明

  この時間は、あなたはAとB、2つの多項式であるA + Bを見つけることになっています

入力形式

  各入力ファイルには、1つのテストケースが含まれています。各ケースには2行を占め、各ラインは、多項式の情報が含まれている:K N1 N1 N2 N2 ... NK NK K多項式、Niとの非ゼロ項の数であり、Niの(iは1 = 、2、...、K)は、それぞれ、指数および係数です。それは、その与えられ1≤K≤10,0≤N K <... <N 2 < N ≤1000

出力フォーマット

  各テストケースのためには、入力と同じ形式の1つのラインの出力AとBの合計を、すべきです。各行の末尾に余分なスペースがなければならないことに注意してください。

小数第1位まで正確でください。

サンプル入力

2 1 2.4 0 3.2

2 2 1.5 1 0.5

サンプル出力

3 2 1.5 1 2.9 0 3.2

問題の意味

  • 二列が与えられると、各行は、多項式を表し、最初の数は非ゼロエントリの多項式係数、それぞれが1つ後の2桁で表されるエントリの数を示し、二つの数は、係数のパワーを表します。決定及び2つの多項式、以前と同じフォーマットに同じ結果を出力

サンプルの解釈

  • 図2は、最初に 2つの多項式の係数が非ゼロのエントリを持っていることを意味し、1つのアイテム2.4は係数F1(X)= 2.4である係数3.2 2.4,0に(すなわち、定数項)はゼロという用語は、3.2である、で表される表しX + 3.2
  • 同様に2行目の多項式表現F2(X)= 1.5倍のように書くことができる2 + 0.5×
  • (X)= 1.5倍の次に、フロリダ(X)+ F2 2 + 2.9x + 3.2 
#include <ビット/ STDC ++ H>
 のconst  int型 max_n = 1111 ダブル P [max_n] = {};
INTメイン(int型 ARGC、CHAR * ARGV []){
     int型 K、N、カウント= 0 ;
    倍増
    scanf関数(" %のD "、&K)。
    以下のためにINT iが= 0 ; I <K; I ++ ){ 
        scanf関数(" %D%1F "、&​​N、& )。
        P [N] + = 
    }
    scanf関数("%のD "、&K)。
    以下のためにINT iが= 0 ; I <K; I ++ ){ 
        scanf関数(" %D%1F "、&​​N、& )。
        P [N] + = 
    } 
    ためINT iは= 0 ; I <max_nを、I ++ ){
         場合(P [I] =!0 ){ 
            カウント ++ 
        } 
    } 
    のprintf(" %d個" 、カウント);
    以下のためのint型私はmax_nを= -  1; I> = 0 ; i-- ){
         もし!(P [I] = 0 ){ 
            のprintf(" %D%.1f " 、I、P [I])。
        } 
    } 
    戻り 0 
}

おすすめ

転載: www.cnblogs.com/YC-L/p/12187244.html