PAT 乙级 1016 部分A+B(JAVA版)

    技术2023-10-17  77

    1016 部分A+B (15分)

    正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,D​A​​=6,则 A 的“6 部分”P​A​​ 是 66,因为 A 中有 2 个 6。

    现给定 A、D​A​​、B、D​B​​,请编写程序计算 P​A​​+P​B​​。

    输入格式:

    输入在一行中依次给出 A、D​A​​、B、D​B​​,中间以空格分隔,其中 0<A,B<10​10​​。

    输出格式:

    在一行中输出 P​A​​+P​B​​ 的值。

    输入样例 1:

    3862767 6 13530293 3

    输出样例 1:

    399

    输入样例 2:

    3862767 1 13530293 8

    输出样例 2:

    0

    代码部分:

    package pat; import java.util.ArrayList; import java.util.Scanner; public class Main { /** * 1016 部分A+B (15分) 正整数 A 的“D ​A ​​ (为 1 位整数)部分”定义为由 A 中所有 D ​A ​​ 组成的新整数 P ​A * ​​ 。例如:给定 A=3862767,D ​A ​​ =6,则 A 的“6 部分”P ​A ​​ 是 66,因为 A 中有 2 个 6。 * * 现给定 A、D ​A ​​ 、B、D ​B ​​ ,请编写程序计算 P ​A ​​ +P ​B ​​ 。 * * 输入格式: 输入在一行中依次给出 A、D ​A ​​ 、B、D ​B ​​ ,中间以空格分隔,其中 0<A,B<10 ​10 ​​ 。 * * 输出格式: 在一行中输出 P ​A ​​ +P ​B ​​ 的值。 * * 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 输出样例 2: * 0 * */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<String> arrayList = new ArrayList<String>(); for (int i = 0; i < 4; i++) { arrayList.add(scanner.next()); } char[] charArray = arrayList.get(0).toCharArray(); char[] charArray3 = arrayList.get(2).toCharArray(); String num1 = ""; String num2 = ""; int time = (arrayList.get(0).length() - arrayList.get(0).replace(arrayList.get(1), "").length()) / arrayList.get(1).length(); int time1 = (arrayList.get(2).length() - arrayList.get(2).replace(arrayList.get(3), "").length()) / arrayList.get(3).length(); for (int i = 0; i < time; i++) { num1 = num1 + arrayList.get(1); } for (int i = 0; i < time1; i++) { num2 = num2 + arrayList.get(3); } Integer integer = new Integer(num1==""?"0":num1); Integer integer1 = new Integer(num2==""?"0":num2); System.out.println(integer + integer1); } }

     

    Processed: 0.010, SQL: 9