正整数 A 的“D(为 1 位整数)部分”定义为由 A 中所有 D 组成的新整数 P。例如:给定 A=3862767,D=6,则 A 的“6 部分”P 是 66,因为 A 中有 2 个 6。
现给定 A、D、B、D,请编写程序计算 P+P。
输入格式:
输入在一行中依次给出 A、D、B、D,中间以空格分隔,其中 0<A,B<10。
输出格式:
在一行中输出 P+P 的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
思路
枚举A的每一位,若该位恰好为D, 则令P = P × 10 + D (秦九韶算法).
代码
#include<cstdio>
int main() {
long long int A, B;
int DA = 0, DB = 0;
//Input the number
scanf("%lld%d%lld%d", &A, &DA, &B, &DB);
//Scan every bit of number
int PA = 0, PB = 0;
while(A != 0) {
if(A % 10 == DA) {
PA = PA * 10 + DA;
}
A = A / 10;
}
while(B != 0) {
if(B % 10 == DB) {
PB = PB * 10 + DB;
}
B = B / 10;
}
printf("%d", PB + PA);
return 0;
}