2019-02-23-PAT乙级-1016-部分A+B
原文链接:PAT乙级-1016-部分A+B
github代码地址:HibisciDai/OJ-PAT-ACM
2019-02-23-PAT乙级-1016-部分A+B
编程描述
正整数 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}$。
辅助描述
1 2 3 4 5
| 作者: CHEN, Yue 单位: 浙江大学 时间限制: 150 ms 内存限制: 64 MB 代码长度限制: 16 KB
|
输入格式
输入在一行中依次给出 A
、$D{A}$、B
、$D{B}$,中间以空格分隔,其中 0<A
,B
<$10^{10}$。
输出格式
在一行中输出 $P{A}$+$P{B}$ 的值。
输入样例1
输出样例1
输入样例2
输出样例2
算法实现
JAVA(openjdk)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import java.util.Scanner; public class Main {
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String[] inputStrings = input.split(" ", 4); int countsame1 = 0; int countsame2 = 0; int pa = 0; int pb = 0; StringBuffer output1 = new StringBuffer(""); StringBuffer output2 = new StringBuffer("");
for (int i = 0; i < inputStrings[0].length(); i++) { if (inputStrings[0].charAt(i) == inputStrings[1].charAt(0)) { countsame1++; } }
for (int i = 0; i < inputStrings[2].length(); i++) { if (inputStrings[2].charAt(i) == inputStrings[3].charAt(0)) { countsame2++; } }
if (countsame1 == 0) { output1.append("0"); } else { for (int i = 0; i < countsame1; i++) { output1.append(inputStrings[1]); } } pa = Integer.parseInt(output1.toString());
if (countsame2 == 0) { output2.append("0"); } else { for (int i = 0; i < countsame2; i++) { output2.append(inputStrings[3]); } }
pb = Integer.parseInt(output2.toString());
System.out.print(pa + pb);
} }
|
运行结果
1 2 3 4 5 6 7 8
| 状态 分数 题目 编译器 耗时 用户 答案正确 15 1016 Java (openjdk) 122 ms HibisciDai 测试点 结果 耗时 内存 0 答案正确 108 ms 17044 KB 1 答案正确 108 ms 16568 KB 2 答案正确 110 ms 15512 KB 3 答案正确 122 ms 17236 KB 4 答案正确 112 ms 17932 KB
|