正整数 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<109。
输出格式:
在一行中输出 PA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
实验代码:
import java.util.Scanner;
public class Code1016 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.nextLine();
String Da = sc.nextLine();
String b = sc.nextLine();
String Db = sc.nextLine();
int Da1 = Integer.parseInt(Da);
int Db1 = Integer.parseInt(Db);
int pa = Da1;
int pb = Db1;
int num1 = calculateNum(Da, a);
int num2 = calculateNum(Db, b);
for (int i = 1; i < num1; i++) {
pa = pa + Da1 * ((int) Math.pow(10, i));
}
for (int i = 1; i < num2; i++) {
pb = pb + Db1 * ((int) Math.pow(10, i));
}
System.out.println(pa);
System.out.println(pb);
if (num1 == 0 && num2 == 0) {
System.out.println(0);
} else if (num1 != 0 && num2 == 0) {
System.out.println(pa);
} else if (num1 == 0 && num2 != 0) {
System.out.println(pb);
} else {
System.out.println(pa + pb);
}
}
//计算短字符串在长字符串中出现的次数
public static int calculateNum(String shortStr, String longStr) {
char[] shortStrArr = shortStr.toCharArray();
char[] longStrArr = longStr.toCharArray();
int count = 0;
for (int i = 0; i <= longStrArr.length - shortStrArr.length; i++) {
if (shortStrArr[0] == longStrArr[i]) {
if (shortStr.equals(longStr.substring(i, i + shortStr.length())))
count++;
}
}
return count;
}
}
效果展示: