1. 问题描述
输入描述:
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
现给定A、DA、B、DB,请编写程序计算PA + PB。
输出描述:
在一行中输出PA + PB的值。
输入样例:
3862767 6 13530293 3
输出样例:
399
2. 解题思路
令 PA 初值为 0,将 A中的每位上的数与 DA 比较,若相等,则令 PA = PA * 10 + DA,由此得到 PA,再以相同办法求得 PB,最后计算并输出 PA+ PB的值。
3. 代码实现
#include<cstdio>
int main()
{
long long a,b;
int d1,d2;
long long p1 = 0,p2 = 0;
scanf("%lld %d %lld %d",&a,&d1,&b,&d2);
while(a != 0)
{
if(a % 10 == d1)
p1 = p1 * 10 + d1;
a /= 10;
}
while(b != 0)
{
if(b % 10 == d2)
p2 = p2 * 10 + d2;
b /= 10;
}
printf("%ld\n",p1 + p2);
return 0;
}