枚举获取整数的每一位

【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;
}
posted @ 2021-01-27 10:57  MorpheusDong  阅读(137)  评论(0编辑  收藏  举报