10
帮我打我的号码!
在编写代码高尔夫球程序时,我通常最终会使用一些数字常量。我总是将它们放在十进制中,因为这就是我的想法,但是我只是意识到我的语言支持其他数字格式,这可能会使我略微缩短代码。 挑战 给定一个小于2 ^ 53-1的非负整数,请确定该整数是否具有以下最短表示形式: 小数 十六进制 科学计数法 小数 由于这是我的语言的默认格式,因此该格式无需额外的注释。每个数字都照常表示为十进制。 十六进制 我的语言将0x前缀用于十六进制常量。这意味着,如果一个数字有4个十六进制数字,则将需要6个字节来表示该数字。 科学计数法 我的语言使用以下格式表示科学符号: [Real base] e [10的整数指数] 例如,700将被表示为7e3,并且699将被表示为6.99e3,因为基数必须在-10到10之间(不包括在内)。出于此挑战的目的,因为输入的数字为非负数,所以基数始终将始终至少为0。 输出量 您应该返回一种识别最短格式的方法(即,十进制为0,十六进制为1,科学格式为2)。或者,您可以输出数字本身的最小表示形式。 测试用例 Decimal | Hexadecimal | Scientific | Winner --------------|--------------|-------------------|------------- 0 | 0x0 | 0e0 | Decimal 15 | 0xF | 1.5e1 | Decimal 6999 | 0x1B57 | 6.999e3 | …