একটি পূর্ণসংখ্যা N দেওয়া কাজটি হল সংখ্যাটিতে উপস্থিত সমস্ত 0গুলিকে '5' দিয়ে প্রতিস্থাপন করা। যাইহোক, অগ্রণী '0' সহ সংখ্যাটিকে '5' দিয়ে প্রতিস্থাপন করা যাবে না কারণ এটি অপরিবর্তিত রয়েছে। উদাহরণস্বরূপ,
ইনপুট-1 −
N = 1007
আউটপুট −
1557
ব্যাখ্যা - প্রদত্ত সংখ্যাটিতে 2টি শূন্য রয়েছে যা '5' দ্বারা প্রতিস্থাপিত হলে ফলাফল 1557 হিসাবে আউটপুট হয়৷
ইনপুট-2 −
N = 00105
আউটপুট −
155
ব্যাখ্যা − যেহেতু প্রদত্ত সংখ্যাটি অগ্রণী '0' দিয়ে শুরু হয় যা উপেক্ষা করা যেতে পারে এবং মাঝখানে 0-কে '5' দিয়ে প্রতিস্থাপন করার পরে আউটপুটটি 155 হিসাবে আউটপুট হয়।
এই সমস্যা সমাধানের পদ্ধতি
প্রদত্ত সংখ্যার সমস্ত 0কে '5' দিয়ে প্রতিস্থাপন করতে আমরা সংখ্যাটির শেষ সংখ্যাটি খুঁজে বের করতে এবং বের করতে পারি। যদি সেই সংখ্যার শেষ সংখ্যা ‘0’ হয় তাহলে মান পরিবর্তন করে ‘5’ দিয়ে প্রতিস্থাপন করুন এবং অন্য একটি সংখ্যা বের করুন। যাইহোক, প্রদত্ত সংখ্যার মধ্যে যেকোনো অগ্রণী '0' উপেক্ষা করা আবশ্যক। এইভাবে আমরা প্রথমে শেষ সংখ্যাটি বের করব এবং তারপর সেই নম্বরটির অন্য সংখ্যাটি বের করার সময় আবার একই ফাংশনটি কল করব।
-
ইনপুট একটি সংখ্যা N.
নিন -
একটি পূর্ণসংখ্যা ফাংশন convertToFive(int N) একটি সংখ্যাকে ইনপুট হিসাবে নেয় এবং সমস্ত 0 এর পরিবর্তে '5' দিয়ে পরিবর্তিত সংখ্যা ফেরত দেয়।
-
যদি সংখ্যাটির শেষ সংখ্যা ‘0’ হয় তাহলে মানটিকে ‘5’ দিয়ে প্রতিস্থাপন করুন।
-
রিকার্সিভ ফাংশনটি ফেরত দিন যা '10' কে ভাগ করে এবং '10' দিয়ে গুণ করে সংখ্যার আরেকটি সংখ্যা নেয়।
-
আউটপুটটি ফেরত দিন যা এটিতে যোগ করে শেষ অঙ্কটি বের করে।
উদাহরণ
def convertToFive(number): number += calculateAddedValue(number) return number def calculateValue(number): result = 0 placeValu = 1 if (number == 0): result += (5 * placeValue) while (number > 0): if (number % 10 == 0): result += (5 * placeValue) number //= 10 placeValue *= 10 return result print(covertToFive(14006))
আউটপুট
উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,
14556
যেহেতু দুটি 0 আছে৷ প্রদত্ত সংখ্যায়, 14006 নম্বরটি প্রতিস্থাপন করার পরে, এটি 14556 হবে৷