দুটি ইন্টিজার (নিউমেরেটর এবং ডিনোমিনেটর) দিয়ে ভগ্নাংশ বানিয়ে সেটিকে স্ট্রিং ফরম্যাটে রূপান্তর করতে হবে। রিপিটিং ডেসিমালের জন্য প্রথম বন্ধনী ব্যবহার করা হয় (যেমন 0.(571428))।
উদাহরণ
4/5 = 0.85/9 = 0.(5)3/2 = 1.54/7 = 0.(571428)
এলগরিদম (সংক্ষেপে)
- সাইন হ্যান্ডলিং (নেগেটিভ চেক)।
- পূর্ণসংখ্যা অংশ বের করুন (
num/den)। - রিমেইন্ডার থাকলে দশমিক পয়েন্ট যোগ করুন।
- রিমেইন্ডার × ১০ করুন, ভাগফল নিন, নতুন রিমেইন্ডার বের করুন।
- রিমেইন্ডার রিপিট হলে সাইকেল শুরু হওয়ার পজিশন নোট করুন।
- স্ট্রিং বানানোর সময় রিপিটিং অংশকে বন্ধনীর মধ্যে রাখুন।
- ডাইনামিক মেমরি (
malloc/realloc) ব্যবহার করুন।
C কোড (প্রধান ফাংশন)
char* fractionToDecimal(int numerator, int denominator) {
// ... ডাইনামিক বাফার, সাইন হ্যান্ডলিং, পূর্ণসংখ্যা অংশ
// রিমেইন্ডার ট্র্যাকিং için int array (dec) ব্যবহার
// রিপিট ডিটেকশন: পূর্বের রিমেইন্ডার মিললে সাইকেল শুরু
// স্ট্রিং বিল্ড করতে malloc/realloc
// রিপিট হলে '(' এবং ')' যোগ
// free(dec); return p;
}
পুরো কোড оригиনাল আর্টিকেলে উপলব্ধ।