写在最前:欢迎批评,欢迎任意地方的指正,用你们的优秀的java代码砸死我吧!!
问题——————
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。
现给定 A、DA、B、DB,请编写程序计算 PA+PB。
输入格式:
输入在一行中依次给出 A、DA、B、DB,中间以空格分隔,其中 0<A,B<1010。
输出格式:
在一行中输出 PA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
解题思路:
没有什么坑。根据题意写就可以了,通过率很高。用字符数组存储遍历,遇到相等的就添加到结果中。
package not.die.in.here;
//满分15
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _1016_PartialAplusB {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] buf = bf.readLine().split(" ");
char[] a = buf[0].toCharArray();
char da = buf[1].charAt(0);
char[] b = buf[2].toCharArray();
char db = buf[3].charAt(0);
StringBuilder sb1 = new StringBuilder("0");
StringBuilder sb2 = new StringBuilder("0");
for(int i=0;i<a.length;i++) {
if(a[i] == da) {
sb1.append(da);
}
}
for(int i=0;i<b.length;i++) {
if(b[i] == db) {
sb2.append(db);
}
}
System.out.println(Integer.parseInt(sb1.toString())+Integer.parseInt(sb2.toString()));
}
}