zoukankan      html  css  js  c++  java
  • 统计指定数字的个数,并将其按权值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);
        }
        
    }
    }
    

      

  • 相关阅读:
    AC自动机模板
    HDU 3065 病毒侵袭持续中(AC自动机)
    HDU 2896 病毒侵袭(AC自动机)
    HDU 2222 Keywords Search (AC自动机模板题)
    HDU 1113 Word Amalgamation
    HDU 1171 Big Event in HDU(母函数或01背包)
    37.Qt网络与通信
    2.Matlab数值数组及其运算
    36.QT地图
    35.QT蝴蝶飞舞
  • 原文地址:https://www.cnblogs.com/GumpYan/p/5864107.html
Copyright © 2011-2022 走看看