我在C ++中编写一个程序,你输入一个数字,它列出了该数字是回文的所有基数。我坚持的是如何为更高的基础做什么,例如:
Converting 170 to base 90,
170 % 90 = 1 R 80
1 % 90 = 0 R 1
因此,由于剩余80高于字母Z(即35),你会怎么做?
我似乎无法找到任何转换到这么高的转换器以测试应该发生什么,所以如果有人能指出我也会非常有帮助。
答案 0 :(得分:2)
由于程序实际上不必显示转换的数字以找到回文,因此它可以在内部表示每个"数字"作为int
(在数组中)是32位或64位。这自然会很快,因为如果不是罕见的话,这种匹配可能是不常见的。
找到回文匹配后,无论如何都可以输出它。也许只需打印一个int
值列表。看看history of hexadecimal:在早期有各种不寻常的方案,其中一些使用特殊字符。
高达64基数有一些共同的标准,但除此之外,你处于很大程度上未知的领域。
答案 1 :(得分:1)
标准方式,对于最多36个基数,就是你所说的:使用越来越多的字母。
在这种情况下,为什么不使用空格作为分隔符或逗号?每个数字都用十进制整数表示。它比提出四十四个新符号更具可读性。