To, co musisz zrobić, to utworzyć funkcję / program, który przyjmuje liczbę dziesiętną jako dane wejściowe i wyprowadza wynik wielokrotnego przyjmowania odwrotności ułamkowej części liczby, aż liczba stanie się liczbą całkowitą.
Mówiąc dokładniej, proces wygląda następująco:
Niech x będzie wejściem
Jeśli x jest liczbą całkowitą, wyślij ją.
W przeciwnym razie: . Wróć do 2.
jest ułamkowym składnikiem jest równe . to podłoga x, która jest największą liczbą całkowitą mniejszą niż .
Przypadki testowe:
0 = 0
0.1 = 1/10 -> 10
0.2 = 1/5 -> 5
0.3 = 3/10 -> 10/3 -> 1/3 -> 3
0.4 = 2/5 -> 5/2 -> 1/2 -> 2
0.5 = 1/2 -> 2
0.6 = 3/5 -> 5/3 -> 2/3 -> 3/2 -> 1/2 -> 2
0.7 = 7/10 -> 10/7 -> 3/7 -> 7/3 -> 1/3 -> 3
0.8 = 4/5 -> 5/4 -> 1/4 -> 4
0.9 = 9/10 -> 10/9 -> 1/9 -> 9
1 = 1
3.14 = 157/50 -> 7/50 -> 50/7 -> 1/7 -> 7
6.28 = 157/25 -> 7/25 -> 25/7 -> 4/7 -> 7/4 -> 3/4 -> 4/3 -> 1/3 -> 3
Podsumowanie dla 0 do 1 w krokach co 0,1: 0, 10, 5, 3, 2, 2, 2, 3, 4, 9, 1
To jest golf golfowy , więc wygrywa najmniej bajtów.
Wyjaśnienia:
- „Punkty bonusowe” za brak błędu zaokrąglenia
- Powinien działać dla każdej nieujemnej liczby wymiernej (ignorując błąd zaokrąglenia)
- Możesz, ale nie musisz generować podjętych kroków
- Dane wejściowe można przyjmować jako liczbę dziesiętną, ułamkową lub parę liczb, które mogą być ciągiem.
Przepraszamy za wszystkie problemy, to moje pierwsze pytanie na tej stronie.