B1016. 部分A+B(15)
Time Limit:100ms Memory Limit:65536 KB
题目描述
正整数A的“D_A(为1位整数)部分”,定义为由A中所有的、D_A组成的新整数P_A.例如:给定A=3862767,D_A=6,则A的“6部分”P_A是66,因为A中有两个6.
现给出A、D_A、B、D_B,请编写程序计算P_A+P_B.
输入格式
在一行中依次输入A、D_A、B、D_B,中间以空格分隔,其中0<A,B<1010。
输出格式
在一行中输出P_A+P_B的值。
输入样例1
3862767 6 13530293 3
输出样式1
399
输入样例2
3862767 1 13530293 8
输出样式2
0
注意点
- 由于题目中给的范围是1010以内,这个范围是超过了int的,因此需要使用 long long 来存放A和B。不过也可以用字符串来存贮A和B,方法其实都是一样的。
参考代码
//c++代码: include <iostream>
using namespace std;
int main(){
long long a,b,da,db;
cin>>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){ //枚举b的每一位
if(b%10==db)pb = pb*10+db;//如果当前位是db,给pb增加一位db;
b=b/10;
}
cout<<pa+pb;
return 0;
}