//1016 部分A+B(15 分)
//正整数 A 的“D_A(为 1 位整数)部分”定义为由 A 中所有 D_A 组成的新整数 P_A。例如:给定 A=3862767,D_A=6,则 A 的“6 部分”P_A是 66,因为 A 中有 2 个 6。
//现给定 A、D_A、B、D_B,请编写程序计算 P_A + P_B。
//
//输入格式:
//输入在一行中依次给出 A、D_A、B、D_B,中间以空格分隔,其中 0<A,B<10^10。
//
//输出格式:
//在一行中输出 P_A + P_B的值。
//
//输入样例 1:
//3862767 6 13530293 3
//输出样例 1:
//399
//输入样例 2:
//3862767 1 13530293 8
//输出样例 2:
//0
//思路:P_A是A中有几个D_A,组成一个数 B同理,最后相加
//其中D_A在0-9之间,A和B在0-10^10之间
//注意int的范围在-231到231-1间,而1010>231-1,因此会超出int的最大值,要用double
C:
#include <stdio.h>
long Dpart(long A,int DA)
{
long PA;
for (PA = 0; A; A /= 10) {
if (A % 10 == DA) {
PA = PA * 10 + DA;
}
}
return PA;
}
int main(int argc, const char * argv[]) {
long A,B;
int DA,DB;
scanf("%ld %d %ld %d",&A,&DA,&B,&DB);
printf("%ld",Dpart(A, DA) + Dpart(B, DB));
return 0;
}
网友评论