Під час написання програм з кодом-гольфу я зазвичай закінчую використання деяких числових констант. Я завжди ставлю їх у десяткові, бо так я думаю, але я просто зрозумів, що моя мова підтримує інші формати чисел, які можуть дозволити мені трохи скоротити код.
Виклик
З огляду на невід'ємне ціле число менше 2 ^ 53-1, вирішіть, чи має це ціле число найкоротше представлення у:
- Десяткові
- Шестидесятковий
- Наукове позначення
Десяткові
Оскільки це формат моєї мови за замовчуванням, для цього формату не потрібні додаткові позначення. Кожне число представлене, як правило, для десятків.
Шестидесятковий
Мої мови використовують 0x
приставку для шістнадцяткових констант. Це означає, що якщо число має 4 шістнадцяткових цифри, це знадобиться 6 байтів.
Наукові позначення
Моя мова використовує такий формат для наукових позначень:
[Реальна база] 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 | Decimal
7000 | 0x1B58 | 7e3 | Scientific
1000000000000 | 0xE8D4A51000 | 1e12 | Scientific
1000000000001 | 0xE8D4A51001 | 1.000000000001e12 | Hexadecimal
1000000001000 | 0xE8D4A513E8 | 1.000000001e12 | Hexadecimal
1000001000000 | 0xE8D4B45240 | 1.000001e12 | Scientific
Оцінка балів
Це код-гольф , тому відповідь у найкоротших байтах для кожної мови виграє.
double
. Просто пропозиція; робіть, як вважаєте за потрібне
1000001000000
можна також записати як 1000001e6
би.
2^63-1
може бути важким для деяких мов. Подумайте про розслаблення до нижчого значення, такого як2^32-1
(значення вписуються в тип даних з подвійною плаваючою комою)