B1016 部分A+B
名詞解釋:
- 正整數A的 “Da部分” 定義爲由A中所有Da組成的新整數Pa。
例如:
- 給定 A=1233312,Da=3,則 A的“3部分” Pa=333
輸入格式:
- 在一行中依次輸入A,Da,B,Db,中間用空格分隔,其中0<A,B<10的10次方。
輸出格式:
- 在一行中輸出Pa+Pb的值。
輸入樣例:
- 126621 6 456333 3
輸出樣例:
- 399
代碼:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
long long a, b, da, db;
cin >> a >> da >> b >> db;
long pa = 0, pb = 0;
//枚舉a的每一位
while (a != 0)
{
if (a % 10 == da)
pa = pa * 10 + da;
a = a / 10;
}
//枚舉b的每一位
while (b != 0)
{
if (b % 10 == db)
pb = pb * 10 + db;
b = b / 10;
}
cout << pa + pb << endl;
return 0;
}
總結:
-
感覺這個題目讀懂題幹很重要。只看文字解釋有時候很難理解,但是把文字解釋和示例在一起看就比較容易理解了。
-
這個題目的考點應該是取一個數的部分了,雖然代碼就三四行,但是很有技巧,也很經典。通過取餘數來判斷每一位是不是和給定的Da相等,然後對A再進行除以十。