У нас було кілька викликів щодо перетворення базових даних, але всі вони, здається, стосуються цілих значень. Давайте зробимо це з реальними цифрами!
Змагання
Вхідні дані:
- Дійсне додатне число x , виражене в базі 10. Це може сприйматися як поплавок подвійної точності або як струна. Щоб уникнути проблем з точністю, їх число можна вважати більшим за 10 −6 та менше 10 15 .
- Цільові базові б . Це буде ціле число від 2 до 36.
- Ряд дробових цифр n . Це буде ціле число від 1 до 20.
Вихід: уявлення про х в базовій Ь з п дрібних цифр.
Обчислюючи вихідний вираз, цифри за межами n- ї повинні бути усічені (не округлені). Наприклад, x = 3.141592653589793
в базі b = 3
є 10.0102110122...
, тому для n = 3
виходу буде 10.010
(усічення), а не 10.011
(округлення).
Для x і b, які дають кінцеву кількість цифр у дробовій частині, також допускається еквівалентне нескінченне подання (усічене до n цифр). Наприклад, 4.5
у десятковій формі також можна представити як 4.49999...
.
Не хвилюйтеся з приводу помилок з плаваючою комою .
Формат вводу та виводу
x буде задано без провідних нулів. Якщо x має бути цілим числом, ви можете припустити, що воно буде задано з нульовою десятковою частиною ( 3.0
) або без десяткової частини ( 3
).
Вихід є гнучким. Наприклад, це може бути:
- Рядок, що представляє число з відповідним роздільником (десятковою точкою) між цілою та дробовою частинами. Digits
11
, і12
т.д. (для б за 10) можна представити в вигляді буквA
,B
як зазвичай, або будь - яких інших різних символів (прохання вказати). - Рядок для цілої частини та інший рядок для дробової частини.
- Два масиви / списки, по одному для кожної частини, що містять числа від
0
до35
цифр.
Єдині обмеження полягають у тому, що цілі та дробові частини можуть бути розказані один від одного (відповідний роздільник) та використовувати той самий формат (наприклад, ні [5, 11]
для списку, що представляє цілу частину, і ['5', 'B']
для списку, що представляє частину).
Додаткові правила
- Програми або функції дозволені на будь- якій мові програмування . Стандартні лазівки заборонені.
- Виграє найкоротший код у байтах.
Тестові справи
Висновок показаний у вигляді рядка з цифрами 0
, ..., 9
, A
..., Z
, використовуючи в .
якості десяткового роздільника.
x, b, n -> output(s)
4.5, 10, 5 -> 4.50000 or 4.49999
42, 13, 1 -> 33.0 or 32.C
3.141592653589793, 3, 8 -> 10.01021101
3.141592653589793, 5, 10 -> 3.0323221430
1.234, 16, 12 -> 1.3BE76C8B4395
10.5, 2, 8 -> 1010.10000000 or 1010.01111111
10.5, 3, 8 -> 101.11111111
6.5817645, 20, 10 -> 6.BCE2680000 or 6.BCE267JJJJ
0.367879441171442, 25, 10 -> 0.94N2MGH7G8
12944892982609, 29, 9 -> PPCGROCKS.000000000
42, 13, 1
ми можемо мати 33
замість 33.0
?
n
десяткові цифри