PAT刷题 (Java语言)
Posted TQCAI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT刷题 (Java语言)相关的知识,希望对你有一定的参考价值。
1001. A+B Format (20)
Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input
Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.
Output
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
Sample Input-1000000 9Sample Output
-999,991
我的代码:
1 package _1001; 2 3 import java.text.DecimalFormat; 4 import java.text.NumberFormat; 5 import java.util.Scanner; 6 7 public class Main { 8 9 public static void main(String[] args) { 10 Scanner sc=new Scanner(System.in); 11 while(sc.hasNext()){ 12 int a=sc.nextInt(); 13 int b=sc.nextInt(); 14 int ans=a-b; 15 NumberFormat format=new DecimalFormat("#,###,###"); 16 String str=new String(); 17 str=format.format(ans); 18 System.out.println(str); 19 } 20 } 21 }
1002. A+B for Polynomials (25)
This time, you are supposed to find A+B where A and B are two polynomials.
Input
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
For each test case you should output the sum 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 to 1 decimal place.
Sample Input2 1 2.4 0 3.2 2 2 1.5 1 0.5Sample Output
3 2 1.5 1 2.9 0 3.2
1 package _1002; 2 3 import java.util.Scanner; 4 5 public class Main { 6 7 public static void main(String[] args) { 8 9 int n; 10 double[] a=new double[10]; 11 double[] b=new double[10]; 12 double[] ans=new double[10]; 13 int i; 14 int max=0; 15 16 //第一行 17 Scanner scan=new Scanner(System.in); 18 n=scan.nextInt(); 19 for(i=0;i<n;i++){ 20 int index=scan.nextInt(); 21 a[index]=scan.nextDouble(); 22 } 23 24 //第二行 25 scan=new Scanner(System.in); 26 n=scan.nextInt(); 27 for(i=0;i<n;i++){ 28 int index=scan.nextInt(); 29 b[index]=scan.nextDouble(); 30 } 31 32 for(i=0;i<10;i++){ 33 ans[i]=b[i]+a[i]; 34 } 35 for(i=9;i>=0;i--){ 36 if(ans[i]!=0){ 37 max=i+1; 38 break; 39 } 40 } 41 System.out.print(max); 42 for(i=max-1;i>=0;i--){//保证一位小数规格化输出 43 System.out.format(" %d %.1f", i,ans[i]); 44 } 45 System.out.println(); 46 } 47 48 }
以上是关于PAT刷题 (Java语言)的主要内容,如果未能解决你的问题,请参考以下文章
2018/12/05 PAT刷题 L1-017. 到底有多二 Java
(Python) PAT(Basic Level) Practice 刷题笔记(34-66)