Що потрібно зробити, це створити функцію / програму, яка приймає десятковий як вхідний і виводить результат багаторазового взяття зворотної дробової частини числа, поки число не стане цілим числом.
Більш конкретно, процес полягає в наступному:
Нехай x - вхід
Якщо x - ціле число, виведіть його.
В іншому випадку: . Поверніться до 2.
x x - ⌊ x ⌋ ⌊ x ⌋ x є дробовою складовою і дорівнює . - x, яка є найбільшим цілим числом, меншим від .
Тестові приклади:
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
Підсумок від 0 до 1 з кроком 0,1: 0, 10, 5, 3, 2, 2, 2, 3, 4, 9, 1
Це код-гольф , тому виграє найменше байтів.
Роз'яснення:
- "Бонусні бали" без помилки заокруглення
- Має працювати на будь-яке невід’ємне раціональне число (ігноруючи помилку округлення)
- Ви можете, але не потрібно виводити вжиті кроки
- Ви можете взяти введення у вигляді десяткових, дробових чи парних чисел, які можуть бути в рядку.
Вибачте за всі питання, це моє перше запитання на цьому веб-сайті.