เป้าหมายของคุณคือการเขียนโค้ดบางส่วนที่จะส่งออกลำดับทศนิยมที่ไม่ซ้ำกันสั้นที่สุดสำหรับส่วนที่ป้อน ไม่มีเศษส่วนสองตัวที่มีตัวส่วนเดียวกันอาจมีผลลัพธ์แบบเดียวกันแม้ว่าเศษส่วนที่มีตัวส่วนที่แตกต่างกันจะมีค่าตัวแทนเดียวกัน
ใช้จำนวนเต็ม 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
คุณไม่ต้องคำนวณอีกแล้ว ฉันมีรุ่น recursive ES6 อย่างอิสระตามนี้ที่ 86 ไบต์เท่านั้น ...