原题
代码
package pat;
import java.util.Scanner;
/**
* @Description
*/
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String A=scanner.next();
int Da=scanner.nextInt();
String B=scanner.next();
int Db=scanner.nextInt();
System.out.println(splice(A, Da) +splice(B, Db));
}
//计算关键数出现的次数,然后合成数字
public static int splice(String num,int key){
int result=0;
int count=0;
char ch=(char) (key+48);//已知字符'0'对应的整型是48
for (int i=0;i<num.length();i++){
if (num.charAt(i)==ch){
result+=key*Math.pow(10,count);//Math.pow(底数,指数)
count++;
}
}
return result;
}
}
看了别人的题解不更了这样写更为简单
用long型接收(int型也可以,可表示10位数),然后对数字循环取10的余数判断相等,循环退出条件每次除以10。