1. 程式人生 > 其它 >1002 A+B for Polynomials (25分)

1002 A+B for Polynomials (25分)

技術標籤:# PAT甲級演算法

題目

可以理解為輸入兩個多項式,求和


輸入

2 1 2.4 0 3.2
2 2 1.5 1 0.5

第一行為 k = 2,x1 = 2.4,x0 = 3.2
第二行為 k = 2,x2 = 1.5,x1 = 0.5

在這裡插入圖片描述

想法

輸入的N1,N2就是陣列的下標,小數就是陣列內的值,弄兩個陣列(或是二維陣列),結果加起來按格式輸出就好了


程式碼

#include<iostream>
using namespace std;
int main(){
    float a[2][10000];
    float number;
    int k,index,max_index=
0; int i,j; for(i=0; i<2; i++){ cin >> k; for(j=0; j<k; j++){ cin >> index >> number; a[i][index] = number; if(max_index < index) max_index = index; } } for(i=0; i <= max_index; i++) a[0][i] +
= a[1][i];//結果放在a[0] int count=0;//計數,用於最後輸出 for(i=0; i <= max_index; i++) if(a[0][i]!=0) count++; printf("%d", count); for(i=max_index; i>=0; i--)//從後往前輸出 if(a[0][i] != 0) printf(" %d %.1f", i, a[0][i]); return 0; }