목표는 입력 분수에 대해 가장 짧은 고유 소수 시퀀스를 출력하는 코드를 작성하는 것입니다. 분모가 같은 두 분수는 동일한 출력을 가질 수 없지만 분모가 다른 분수는 같은 표현을 가질 수 있습니다.
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보다 크고 또는 소수점 앞에 0이없는 중 1 개 미만 출력 숫자만큼 출력이 일치으로, 즉 0.5
와 .5
같은 수 있습니다 모두 유효합니다. 다른 선행 0은 허용되지 않습니다. 출력을 다른 값과 구별하는 데 필요한 경우 후행 0을 표시해야합니다.
0에서 떨어진 숫자는 반올림 할 수 없습니다. 잘 려야합니다. 선행 또는 후행 공백이 없어야합니다. 선택적으로 단일 후행 줄 바꿈이있을 수 있습니다.
더 많은 테스트 값 :
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
다시 계산할 필요가 없습니다. 나는 ... 불과 86 바이트에서 느슨하게이를 바탕 재귀 ES6 버전이