ধরুন আমাদের একটি ফ্লোটিং পয়েন্ট নম্বর আছে; সংখ্যাটি বিজোড় নাকি জোড় তা আমাদের পরীক্ষা করতে হবে। সাধারণভাবে, পূর্ণসংখ্যার জন্য শেষ অঙ্কটিকে 2 দ্বারা ভাগ করা সহজ। কিন্তু ভাসমান বিন্দু সংখ্যার জন্য এটি সোজাভাবে এগিয়ে যায় না। এটি বিজোড় নাকি জোড় তা পরীক্ষা করার জন্য আমরা শেষ সংখ্যাটিকে 2 দিয়ে ভাগ করতে পারি না।
সুতরাং, যদি ইনপুটটি n =200.290 এর মত হয়, তবে শেষ সংখ্যাটি 2 দ্বারা বিভাজ্য হলেও আউটপুটটি বিজোড় হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- s :=সংখ্যাকে স্ট্রিং হিসাবে রূপান্তর করুন
- পতাকা :=মিথ্যা
- s - 1 থেকে 0 এর রেঞ্জের আকারের i জন্য, 1 দ্বারা হ্রাস করুন, করুন
- যদি s[i] হয় '0' এবং পতাকা হয় False, তাহলে
- পরবর্তী পুনরাবৃত্তির জন্য যান
- যদি s[i] '.' এর মত হয়, তাহলে
- পতাকা :=সত্য
- পরবর্তী পুনরাবৃত্তির জন্য যান
- যদি s[i] জোড় হয়, তাহলে
- রিটার্ন "Even"
- রিটার্ন "বিজোড়"
- যদি s[i] হয় '0' এবং পতাকা হয় False, তাহলে
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def solve(n) : s = str(n) flag = False for i in range(len(s) - 1, -1, -1) : if s[i] == '0' and flag == False : continue if s[i] == '.': flag = True continue if int(s[i]) % 2 == 0 : return "Even" return "Odd" n = 200.290 print(solve(n))
ইনপুট
200.290
আউটপুট
Odd