请原谅标题。
这是一个受82000的“好奇属性”启发的问题。在其中,作者指出数字82000在2、3、4和5的底数是二进制的。该帖子然后提出了一个问题:“在2、3、4、5和6的底数中是否有二进制数? “?(对于那些好奇的人,我检查了高达10 ^ 1,000,000的值,到目前为止,答案是否定的。)
这让我开始思考:给定一个数字,它的二进制基础是什么?
我们的奇数82000实际上是六个基数的二进制数:
Base 2 = 10100000001010000
Base 3 = 11011111001
Base 4 = 110001100
Base 5 = 10111000
Base 81999 = 11
Base 82000 = 10
并非所有数字都具有连续的二进制基数。考虑数字8321。它是以2、17、289、83520和8351为基数的二进制数。
您面临的挑战是确定并显示数字的二进制基础。
规则
- 如果数字在给定基数中的表示形式仅由零和一组成,则该数字被视为“二进制”。
110110
是二进制值,而12345
不是,A380F
则绝对不是。 - 您的电话号码将在标准输入中提供。它是2到2 ^ 32-1之间的整数值(包括2和32 ^ 32-1),并将以10为基数的格式提供。
- 以升序显示大于2的二进制数的每个基数。每个基数应位于其自己的行上。如果您在该基数中包含二进制值(请参阅下面的加分评分),请用空格分隔基数和二进制值。将仅判断输出到标准输出,将忽略标准误差和其他来源。
计分
您的分数是程序的大小(以字节为单位)。分数越低越好。
奖励:
如果您的程序还以找到的基数输出二进制值,则将分数乘以0.75。
显示的二进制值应该没有多余的标点符号,没有多余的零,没有小数点,只有零和一。
例子
输入:
82000
输出(收到奖金):
2 10100000001010000
3 11011111001
4 110001100
5 10111000
81999 11
82000 10
输入:
1234321
输出(无奖金):
2
1111
1234320
1234321
n
总是至少在二进制基础1
(未计数), ,2
,n-1
和n
。
[1, 0, 1, 1, 0]
可以,或者是否必须像这样将数字加起来10110
?