--------------------------------------------------------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K 代码长度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
题目描述
正整数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的值。
输入例子:
3862767 6 13530293 3
输出例子:
399
--------------------------------------------------------------------------------------------------------------------------------------------------------
实现思路:
(1).将A、B转换为字符数组,统计DA、DB出现的次数;
(2).将统计次数转换为整型数字进行相加即可。
--------------------------------------------------------------------------------------------------------------------------------------------------------
import java.util.Scanner;
public class Main_a1_006 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String a = scan.next();
int da = scan.nextInt();
String b = scan.next();
int db = scan.nextInt();
System.out.println(dealPNum(a,da,b,db));
}
}
public static long dealPNum(String a,int da,String b,int db){
char[]charA = a.toCharArray();
char[]charB = b.toCharArray();
char daC = (char)(da + 48);
char dbC = (char)(db + 48);
int aCount = 0;
int bCount = 0;
for (int i = 0; i < charA.length; i++) {
if(charA[i] == daC){
aCount++;
}
}
for (int i = 0; i < charB.length; i++) {
if(charB[i] == dbC){
bCount++;
}
}
long pa = 0;
if(aCount > 0){
String strA = "";
for (int i = 0; i < aCount; i++) {
strA = strA + da;
}
pa = Long.parseLong(strA);
}
long pb = 0;
if(bCount > 0){
String strB = "";
for (int i = 0; i < bCount; i++) {
strB = strB + db;
}
pb = Long.parseLong(strB);
}
return pa + pb;
}
}