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类型

猜你喜欢

转载自www.cnblogs.com/YC-L/p/12090027.html