B1016. 部分A+B(15)

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

注意点

  1. 由于题目中给的范围是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;   
}

猜你喜欢

转载自blog.csdn.net/weixin_42892543/article/details/85043627