1. 程式人生 > >B1016. 部分A+B(15)

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;   
}