码迷,mamicode.com
首页 > 其他好文 > 详细

统计指定数字的个数,并将其按权值10的次方数相加

时间:2016-09-12 12:22:48      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

正整数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);
    }
    
}
}

  

统计指定数字的个数,并将其按权值10的次方数相加

标签:

原文地址:http://www.cnblogs.com/GumpYan/p/5864107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!