统计指定数字的个数,并将其按权值10的次方数相加
题目描述:
正整数A的"DA(为一位整数)部分"定义由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的值

如图,就是查询第一个整数中6的个数,2,再变成66;查询第二个整数3的个数,3,再变成333
再相加66+333=399
分析:本题要利用到两个知识点:(1)统计一个整数中,指定的一个数字的个数。(2)把指定的数字,按权值10的次方数相加。
import java.util.*;
public class Main2{
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
int A=0;
int B=0;
int countA=0;//统计DA的个数
int countB=0;//统计DB的个数
int PA=0;
int PB=0;
int DA=0;
int DB=0;
while(cin.hasNext()){
A=cin.nextInt();
DA=cin.nextInt();
while(A>0){
if(A%10==DA){//用A%10可以获得A的一位
countA++;
}
A=A/10;//每%计算一次之后,把A缩小规模
}
while(countA>=1){
PA+=DA*(Math.pow(10,countA-1));
countA--;
}
B=cin.nextInt();
DB=cin.nextInt();
while(B>0){
if(B%10==DB){
countB++;
}
B=B/10;
}
while(countB>=1){
PB+=DB*(Math.pow(10,countB-1));
countB--;
}
System.out.println(PA+PB);
}
}
}

浙公网安备 33010602011771号