1016 部分A+B
输入格式:
输出格式:
输入样例 1:
3862767 6 13530293 3
输出样例 1:
399
输入样例 2:
3862767 1 13530293 8
输出样例 2:
0
题目分析
1、遍历A和B,寻找是否有等于da,db的数;
用a%10==da(取个位),a=a/10(去掉个位)的方式遍历A。
2、如果A中有恰好等于da的,则令pa=pa*10+da。
pa初始值为0。
3、同理得pb,然后输出pa+pb。
4、需要注意的是A、B给得范围超出了int,需要用long long来定义。
5、碎碎念
- 在遍历A,寻找等于da中,思路卡住了。
代码如下
#include<stdio.h>
int main(){
long long a,b,da,db;
scanf("%lld%lld%lld%lld",&a,&da,&b,&db);
long long pa=0,pb=0;
while(a!=0){//枚举a的每一位
if(a%10==da){//取个位
pa=pa*10+da;//如果当前位是da,给pa增加一位da。
}
a=a/10;//去掉个位
}
while(b!=0){
if(b%10==db){
pb=pb*10+db;
}
b=b/10;
}
printf("%lld\n",pa+pb);
return 0;
}