模拟试题1 - 计算PA+PB

题目描述

正整数A的DA(1位整数)部分定义为由A中所有组成的新整数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 < 1e10

输出描述

在一行中输出PA+PB的值

输入例子

3862767 6 13530293 3

输出例子

399

解题程序

#include <iostream>
using namespace std;

void getPA(unsigned long num, int DA, unsigned long & PA)
{
    PA = 0;
    while(num)           // 循环查找num中DA的个数
    {
      if(num%10==DA)
        PA = PA*10+DA;
      num/=10;
    }
}

int main()
{
    unsigned long A,B;
    unsigned long PA=0,PB=0;
    int DA,DB;

    cin>>A>>DA>>B>>DB;
    getPA(A,DA,PA);      // 计算PA
    getPA(B,DB,PB);      // 计算PB
    cout<<PA+PB<<endl;
    return 0;
}