枚举获取整数的每一位
【PAT B1016】
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805306310115328
B1016考察的关键是如何枚举获取整数的每一位。
一个整数A,对A取余能拿到它的个位,令A除以10能让A去掉个位。如123,a = 123%10,则a为3,a = a/10,则a为12。
枚举获取每一位,只要用一个循环控制,每次判断A有没有变成0(即取完了最后的个位),在每次循环中,获取它的个位。
考察的另一个关键点是用取得的个位数组成一个新整数。
代码:
#include<iostream>
using namespace std;
int main()
{
long long a, b;
int da, db;
long long pa = 0, pb = 0;
cin >> a >> da >> b >> db;
while (a != 0)
{
if (a % 10 == da)
pa = pa*10+da;
a = a / 10;
}
while (b != 0)
{
if (b % 10 == db)
pb = pb * 10 + db;
b = b / 10;
}
cout << pa + pb;
return 0;
}