题意:
给定两个多项式,计算两个多项式求和的结果
分析:
1、指数相同的相加,系数和为零的舍掉;
2、事先计算好和多项式有多少项;
3、结果行后不能有空行和空格;
4、特别注意和多项式为零的情况;
切记:PAT java代码需要去掉package,并把类名命名为Main!!!
package AdvancedLevelPractice;
import java.util.Scanner;
public class pat1002 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int max = 1001;
double[] coefficients = new double[max];
int exp, kk;
double coef;
try {
Scanner s=new Scanner(System.in);
int k = s.nextInt();
for(int i = 0; i < k; i++){
exp = s.nextInt();
coef = s.nextDouble();
coefficients[exp] = coef;
}
kk = k;
k = s.nextInt();
for(int i = 0; i < k; i++){
exp = s.nextInt();
coef = s.nextDouble();
if(coefficients[exp] != 0){
coefficients[exp] += coef;
if (coefficients[exp] == 0) {
kk--;
}
}
else {
coefficients[exp] = coef;
kk++;
}
}
System.out.print(kk);
if(kk != 0){
System.out.print(" ");
}
for(int i = max - 1; i >= 0; i--){
//System.out.println(i);
if(coefficients[i] != 0){
if(kk != 1){
System.out.print(i+" ");
System.out.print(String.format("%.1f", coefficients[i])+" ");
kk--;
}
else {
System.out.print(i+" ");
System.out.print(String.format("%.1f", coefficients[i]));
}
}
}
s.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}