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再进行除以十。