Avatar ·

فترة الكسر العشري

📁 طريقة, بايثون, مثال

المهمة: يتم تمرير عددين صحيحين إلى الدالة (int(a), int(b)). يجب إرجاع ناتج القسمة a/b، مع وضع الأرقام المتكررة (الفترة) بين قوسين.

أمثلة:

1/3  = >   0.(3)29/12 = >  2.41(6)5/3  = >  1.(6)

اقتربت من حل المشكلة باستخدام brute force method. كنت أبحث في الجزء العشري وأبحث عن التطابقات. لكن في حالة 1/117، تحتوي الفترة على أكثر من 90 رقمًا، ويستغرق البحث وقتًا أطول مما هو مسموح به في المشكلة.

كيف يمكن حل هذه المشكلة بطريقة مختلفة؟ هل هناك حل أكثر أناقة؟