B1016
题目描述
正整数 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的值。
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
思路
利用对10取余并除以10(取余一次即做一次除法)得到a或b中的每位数字,用if条件进行判断;由d1,d2组成的新整数分别储存在n1,n2;求法很简单,即调用pow函数。
源代码
#include<stdio.h>
#include<math.h>
int main(){
long long a,d1,b,d2;
int i=0,n1=0,n2=0;
scanf("%lld%lld%lld%lld",&a,&d1,&b,&d2);
while(a>0){
if(a%10==d1) //判断a中等于d1的数字
n1+=d1*pow(10,i++); //计算所有d1数字组合成的新整数
a/=10;
}
i=0;
while(b>0){
if(b%10==d2) //判断b中等于d2的数字
n2+=d2*pow(10,i++); //计算所有d2数字组合成的新整数
b/=10;
}
printf("%d",n1+n2);
return 0;
}