题目
正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数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 < 1010。
输出
在一行中输出PA + PB的值
案例
3862767 6 13530293 3
399
3862767 1 13530293 8
0
代码
#include <stdio.h>
#include <string.h>
#include <math.h>
// 将char类型的数字变成int类型的数字
int atoi(char s)
{
int i;
int n = s - '0';
return n;
}
int main(){
long long A,B;
char a[11],b[11];
int da,db;
int pa = 0,pb = 0;
int n = 0,m = 0;
while(scanf("%ld %d %ld %d",&A,&da,&B,&db) != EOF){
sprintf(a,"%ld",A);
for(int i=0;i<11;i++){
if(atoi(a[i]) == da){
pa = pa + pow(10,n) * da;
n = n + 1;
}
}
sprintf(b,"%ld",B);
for(int i=0;i<11;i++){
if(atoi(b[i]) == db){
pb = pb + pow(10,m) * db;
m = m + 1;
}
}
printf("%d",pa +pb);
// 初始化重置
n = 0,m = 0,pa = 0,pb = 0;
}
return 0;
}