B1016. 部分A+B(15)
阿新 • • 發佈:2018-12-17
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; }