B1016 部分A+B

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;

}

總結:

  1. 感覺這個題目讀懂題幹很重要。只看文字解釋有時候很難理解,但是把文字解釋和示例在一起看就比較容易理解了。

  2. 這個題目的考點應該是取一個數的部分了,雖然代碼就三四行,但是很有技巧,也很經典。通過取餘數來判斷每一位是不是和給定的Da相等,然後對A再進行除以十。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章