B1016. 部分 A+B
题目描述
正整数A的"D(为1位整数)部分"定义由A中所有D组成的新整数P,例如给定A=3862767,D=6,则A的"6部分" P是66,因为A中有2个6,现给定A、DA、B、DB,编写程序计算 PA + PB
输入格式
在一行中依次输入A、DA、B、DB,中间以空格分隔,其中 0 < A,B < 1010
输出格式
在一行中输出PA + PB
输入样例1
3862767 6 13530293 3
输出样例1
399
输入样例2
3862767 1 13530293 8
输出样例2
0
基本思想
开一个循环,循环条件,当前数字不为0,该数字对10取余,若结果等于D,则对P乘以10,然后加上D
long long a, b, da, db;
scanf("%lld%lld%lld%lld", &a, &da, &b, &db); long long pa = 0, pb = 0; while(a != 0){ if(a%10 == da){ pa = pa*10 + da; } a /= 10; } while(b != 0){ if(b%10 == db){ pb = pb*10 + db; } b /= 10;
} printf("%lld\n", pa + pb); return 0;
题目关键
题目给出的数据范围是1010,超过了int,所以用long long类型
论读书
睁开眼,书在面前 闭上眼,书在心里
睁开眼,书在面前 闭上眼,书在心里