Ваша мета - написати якийсь код, який виведе найкоротшу унікальну десяткову послідовність для вхідного дробу. Немає двох дробів з однаковим знаменником може мати однаковий вихід, хоча дроби з різними знаменниками можуть мати однакове представлення.
Взяти за вхід 2 цілих числа , перше - чисельник, друге - знаменник.
Наприклад:
n d output
----- ------
0 13: 0.00
1 13: 0.07
2 13: 0.1
3 13: 0.2
4 13: 0.30
5 13: 0.38
тощо.
3/13
є єдиним дробом із знаменником 13, який починається з 0.2
, тому більше ніяких цифр не потрібно. 4/13
і 5/13
обидва починаються з 0.3
, тому для їх розрізнення потрібна ще одна цифра.
Ви можете виводити чисел більше -1 і менше , ніж 1 з або без нуля до десяткового дробу, до тих пір , як вихід послідовно, тобто 0.5
і .5
той же число і є дійсними. Не допускаються інші провідні нулі. Трелі нулі повинні бути показані, якщо вони необхідні для відмежування виводу від іншого значення.
Ви не можете округляти будь-які цифри від нуля; вони повинні бути усічені. Не повинно бути провідних чи кінцевих пробілів. За бажанням може бути один зворотний новий рядок.
Більше тестових значень:
n d output
---------- ------
0 1: 0 (this 0 may not be removed because there's no decimal point)
5 1: 5
0 3: 0.0 (or .0)
4 3: 1.3
5 3: 1.6
10 8: 1.2
11 8: 1.3
12 8: 1.5
-496 -38: 13.05
458 -73: -6.27
70 106: 0.660 (or .660)
255 123: 2.07
256 -123: -2.081
-257 -123: 2.089
-258 123: -2.09
258 -152: -1.697
-259 152: -1.70
260 152: 1.710
272 195: 1.39
380 247: 1.538
455 -455: -1.000
-44 891: -0.049 (or -.049)
123 1234: 0.099 (or .099)
У кожному випадку вихід і знаменник є достатніми, щоб однозначно опрацювати чисельник.
/b
іi
до того,p
щоб ви могли також кодувати їх всерединіp
себе і просто взяти один параметр. Крім того, відповідь - це простоn
так, що вам більше не доведеться її обчислювати. У мене рекурсивна версія ES6 вільно базується на цьому лише у 86 байтах ...