Ми всі знаємо, що щоразу, коли раціональне число записується у десятковій формі, результат або закінчується, або (зрештою) періодично. Наприклад, коли 41/42 записується у десятковій формі, результат є
0.9 761904 761904 761904 761904 761904 761904 761904 ...
з початковою послідовністю цифр, 0.9
за якою послідовність 761904
повторюється знову і знову. (Зручне позначення для цього - це те, 0.9(761904)
коли круглі дужки оточують блок повторюваних цифр.)
Ваша мета в цьому завданні - взяти позитивне раціональне число, видалити першу цифру, що є частиною повторюваної послідовності, і повернути отримане раціональне число. Наприклад, якщо це зробити до 41/42, ми отримаємо
0.9 61904 761904 761904 761904 761904 761904 761904 ...
або 0.9(619047)
коротко, що становить 101/105.
Якщо раціональне число має закінчується десяткове розширення, як 1/4 = 0.25
робить, нічого не повинно статися. Ви можете думати про 1/4 як 0.250000000...
або як, 0.249999999...
але в будь-якому випадку, видалення першої цифри повторюваної частини залишає число незмінним.
Деталі
- Вхід є позитивним раціональним числом або як пара натуральних чисел, що представляють чисельник і знаменник, або (якщо ваша обрана мова дозволяє і ви хочете) як якийсь об'єкт раціонального числа.
- Вихід також є раціональним числом, також у будь-якій формі. Якщо результат є цілим числом, ви можете повернути ціле число замість раціонального числа.
- Якщо взяти пару чисел як вхід, ви можете припустити, що вони відносно прості; якщо виводиться пара чисел як вихід, ви повинні зробити їх відносно простими.
- Будьте уважні, що ви знайдете першу цифру, яка починає повторюваний блок. Наприклад, можна записати 41/42 як,
0.97(619047)
але це не робить 2041/2100 (з десятковим розширенням0.97(190476)
) дійсною відповіддю. - Ви можете припустити, що у отриманому введенні перша періодична цифра знаходиться після десяткової крапки, роблячи
120/11
=10.909090909...
недійсним введення: (її перша періодична цифра може вважатися0
в10
). Ви можете робити все, що завгодно, на такому вході. - Це код-гольф : виграє найкоротше рішення.
Тестові справи
41/42 => 101/105
101/105 => 193/210
193/210 => 104/105
104/105 => 19/21
1/3 => 1/3
1/4 => 1/4
2017/1 => 2017/1
1/7 => 3/7
1/26 => 11/130
1234/9999 => 2341/9999
(2017,1)
.)
2/4
статися на вході?
120/11
це правильна відповідь 111/11
або 210/11
?
111/11
за винятком того, що відповідь на найвищому рівні в даний момент повертається 210/11
, тому я дозволю вам вибрати, щоб уникнути недійсності існуючих відповідей.
2017
замість2017/1
?