1016 部分A+B (15分)
正整数 AAA 的“DAD_ADA(为 1 位整数)部分”定义为由 AAA 中所有 DAD_ADA 组成的新整数 PAP_APA。例如:给定 A=3862767A = 3862767A=3862767,DA=6D_A = 6DA=6,则 AAA 的“6 部分”PAP_APA 是 66,因为 AAA 中有 2 个 6。
现给定 AAA、DAD_ADA、BBB、DBD_BDB,请编写程序计算 PA+PBP_A + P_BPA+PB。
输入格式:
输入在一行中依次给出 AAA、DAD_ADA、BBB、DBD_BDB,中间以空格分隔,其中 0<A,B<10100 < A, B < 10^{10}0<A,B<1010。
输出格式:
在一行中输出 PA+PBP_A + P_BPA+PB 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
题意实质为找出给定数字中某一数的个数,并将其组合求和后输出。注意sum要用long long型,不然可能会超出int的范围。
参考代码:
#include <cstdio>
int main()
{
int a,da,b,db;
while(scanf("%d%d%d%d",&a,&da,&b,&db)!=EOF)
{
int sa=0,sb=0;
int ta,tb;
while(a)
{
ta=a%10;
if(ta==da)
sa=sa*10+da;
a/=10;
}
while(b)
{
tb=b%10;
if(tb==db)
sb=sb*10+db;
b/=10;
}
long long sum=sa+sb;
printf("%lld\n",sum);
}
return 0;
}