आपको एक फ़ंक्शन / प्रोग्राम बनाने की ज़रूरत है जो एक दशमलव को इनपुट के रूप में लेता है, और संख्या के आंशिक भाग के पारस्परिक बार-बार परिणाम का परिणाम देता है, जब तक कि संख्या एक पूर्णांक नहीं बन जाती।
विशेष रूप से, प्रक्रिया इस प्रकार है:
X को इनपुट होने दें
यदि x पूर्णांक है, तो इसे आउटपुट करें।
अन्यथा: । 2 पर वापस जाएं।
की आंशिक घटक है , और बराबर होती है । एक्स के फर्श है, जो सबसे बड़ी पूर्णांक से कम है ।
परीक्षण के मामलों:
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, 10, 5, 3, 2, 2, 2, 3, 4, 9, 1 के 0 से 1 के लिए सारांश
यह कोड-गोल्फ है , इसलिए सबसे कम बाइट जीतती है।
स्पष्टीकरण:
- "बोनस अंक" बिना किसी राउंड-ऑफ त्रुटि के
- किसी भी गैर-नकारात्मक परिमेय संख्या (राउंड-ऑफ त्रुटि की अनदेखी) के लिए काम करना चाहिए
- आप कर सकते हैं, लेकिन उठाए गए कदमों का उत्पादन करने की जरूरत नहीं है
- आप एक दशमलव, अंश, या संख्याओं की जोड़ी के रूप में इनपुट ले सकते हैं, जो एक स्ट्रिंग में हो सकता है।
सभी मुद्दों के लिए क्षमा करें, यह इस वेबसाइट पर मेरा पहला प्रश्न है।