당신이해야 할 일은 입력으로 소수를 취하는 함수 / 프로그램을 만들고 숫자가 정수가 될 때까지 숫자의 소수 부분의 역수를 반복적으로 얻은 결과를 출력하는 것입니다.
보다 구체적으로, 프로세스는 다음과 같습니다.
x를 입력하자
x가 정수이면 출력하십시오.
그렇지 않은 경우 : . 2로 돌아갑니다.
는 의 분수 구성 요소이며 와 같습니다 . 가장 큰 정수 미만입니다 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
이것은 code-golf 이므로 가장 적은 바이트가 이깁니다.
설명 :
- 반올림 오류가없는 "보너스 포인트"
- 음수가 아닌 합리적인 숫자에 대해 작동해야합니다 (반올림 오류 무시).
- 할 수는 있지만 수행 한 단계를 출력 할 필요는 없습니다.
- 문자열에있을 수있는 10 진수, 분수 또는 숫자 쌍으로 입력 할 수 있습니다.
모든 문제에 대해 죄송합니다.이 웹 사이트의 첫 번째 질문입니다.