একটি পূর্ণসংখ্যা N দেওয়া হয়েছে, কাজটি হল '5' দিয়ে সংখ্যায় উপস্থিত সমস্ত 0 এর প্রতিস্থাপন করা। যাইহোক, অগ্রণী '0' সহ সংখ্যাটিকে '5' দিয়ে প্রতিস্থাপন করা যাবে না কারণ এটি অপরিবর্তিত রয়েছে। উদাহরণস্বরূপ,
ইনপুট-1 −
N= 1007
আউটপুট −
1557
ব্যাখ্যা − প্রদত্ত সংখ্যাটিতে 2টি শূন্য রয়েছে যা '5' দ্বারা প্রতিস্থাপিত হলে ফলাফল 1557 হিসাবে আউটপুট হয়৷
ইনপুট-2 −
N = 00105
আউটপুট −
155
ব্যাখ্যা − যেহেতু প্রদত্ত সংখ্যাটি অগ্রণী '0' দিয়ে শুরু হয় যা উপেক্ষা করা যেতে পারে এবং মাঝখানে 0-কে '5' দিয়ে প্রতিস্থাপন করার পরে আউটপুটটি 155 হিসাবে আউটপুট হয়।
এই সমস্যা সমাধানের পদ্ধতি
প্রদত্ত সংখ্যার সমস্ত 0 কে '5' দিয়ে প্রতিস্থাপন করতে আমরা সংখ্যাটির শেষ সংখ্যাটি খুঁজে বের করতে এবং বের করতে পারি। যদি সেই সংখ্যার শেষ সংখ্যাটি '0' হয় তবে পরিবর্তন করে মানটিকে '5' দিয়ে প্রতিস্থাপন করুন এবং অন্য একটি সংখ্যা বের করুন। যাইহোক, প্রদত্ত সংখ্যার যেকোনো অগ্রণী '0' অবশ্যই উপেক্ষা করা উচিত।
সমস্যাটি একটি পুনরাবৃত্তি পদ্ধতি ব্যবহার করে সমাধান করা যেতে পারে যেখানে আমরা প্রথমে শেষ সংখ্যাটি বের করব এবং তারপর সেই নম্বরটির অন্য সংখ্যাটি বের করার সময় আবার একই ফাংশনটি কল করব।
-
ইনপুট একটি সংখ্যা N.
নিন -
একটি পূর্ণসংখ্যা ফাংশন converToFive(int N) একটি সংখ্যাকে ইনপুট হিসাবে নেয় এবং সমস্ত 0 এর পরিবর্তে '5' দিয়ে পরিবর্তিত সংখ্যা ফেরত দেয়।
-
একটি বেস ক্ষেত্রে, যদি সংখ্যাটি '0' হয়, তাহলে 0 ফেরত দিন, অন্যথায় সেই সংখ্যার শেষ সংখ্যাটি বের করুন এবং চেক করুন,
-
যদি সংখ্যাটির শেষ সংখ্যা ‘0’ হয় তাহলে মানটিকে ‘5’ দিয়ে প্রতিস্থাপন করুন।
-
পুনরাবৃত্ত ফাংশনটি ফেরত দিন যা '10' কে ভাগ করে এবং '10' দ্বারা গুণ করে সংখ্যার আরেকটি সংখ্যা নেয়।
-
আউটপুটটি ফেরত দিন যা এটিতে যোগ করে শেষ অঙ্কটি বের করে।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int convertToFive(int N) { if(N==0){ return 0; } int last_digit= N%10; if(last_digit==0) last_digit=5; return convertToFive(N/10)*10 +last_digit; } int main() { int N= 14006; cout << convertToFive(N) << endl; }
আউটপুট
যদি আমরা উপরের কোডটি রান করি, তাহলে এটি আউটপুটটিকে
হিসাবে প্রিন্ট করবে14556
যেহেতু প্রদত্ত সংখ্যাটিতে দুটি 0 আছে, তাই 14006 নম্বরটি প্রতিস্থাপন করার পরে, এটি 14556 হবে৷