1016 部分A+B (15分)
正整数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
题目解析:
这道题不难理解,用A中的所有DA组成的新数字和B中所有DB组成的新数字相加。我采取的方法是把A和B存入到字符数组中,逐项分别的DA,DB进行比较,同时定义两个空字符串,每匹配一个,字符串就拼接一个DA或者DB,当然如果A中不包含DA,最后的字符串就是空字符串。
AC代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
char[] A=s.next().toCharArray();
int DA=s.nextInt();
char[] B=s.next().toCharArray();
int DB=s.nextInt();
String PA="",PB="";
for(int i=0;i<A.length;i++){
if(A[i]-48==DA){
PA+=A[i];
}
}
for(int i=0;i<B.length;i++){
if(B[i]-48==DB){
PB+=B[i];
}
}
//这里注意一下PA或者PB为空的情况,如果为空的话Integer.parseInt()就不能用了
if(PA==""&&PB!=""){
System.out.print(Integer.parseInt(PB));
}else if(PA!=""&&PB==""){
System.out.print(Integer.parseInt(PA));
}else if(PA==""&&PB==""){
System.out.print("0");
}else{
System.out.print(Integer.parseInt(PA)+Integer.parseInt(PB));
}
}
}
大家都好好在家学习啊,不要给国家添乱,最后的时刻了,我是相信因果报应的,那些关键时刻发国难财,给国家添乱的人最后是没有好下场的。