试题A: 进制

试题A: 进制
本题总分:5分

【问题描述】 8100178706957568 这个数在用 x 进制表示时 (x ∈ [11,36]),仅包含数字而 不包含字母,请问x是多少。比如2588用16进制表示为a1c,包含字母a和 c。

思路:将题目所给的数字直接转换成x进制的形式,因为要求不包含字母,那么便表示在x进制当中所有的数都在0~9的范围内,如果不是则会出现两位数,所以只需要在最后转换成x进制的数字里面找到含数字最少的那一组,便可以确定x是多少了。

#include
using namespace std;
int main() {
	long long n = 8100178706957568;
	for (int i = 11; i <= 36; i++) {
		long long tmp = n;
		// 转换进制并打印
		while (tmp != 0) {
			int a = tmp % i;
			cout << a;
			tmp /= i;
		}
		cout << endl;
	}
}

结果为:在一行当中数字最少的那一行则为结果,最终结果为32
试题A: 进制_第1张图片

你可能感兴趣的:(蓝桥杯)