একটি পূর্ণসংখ্যা N দেওয়া থাকলে, সেটির সব ০ ডিজিটকে ৫ দিয়ে রিপ্লেস করতে হবে। তবে লিডিং ০ (সর্বোচ্চ স্থানীয় মানवाले ০) রিপ্লেস হবে না।
ইনপুট-১
N = 1007
আউটপুট
1557
ইনপুট-২
N = 00105
আউটপুট
155
সমাধানের পদ্ধতি
রিকারসিভ পদ্ধতিতে সমাধান করা যায়। প্রতিবার শেষ ডিজিট বের করে ০ হলে ৫ বসিয়ে, বাকি অংশের জন্য রিকারসিভ কল দিন।
- সংখ্যা N ইনপুট নিন।
convertToFive(int N)ফাংশন রিকারসিভলি কাজ করবে।- বেস কেস: N == 0 হলে 0 রিটার্ন।
- শেষ ডিজিট = N % 10। যদি ০ হয়, ৫ করুন।
- রিটার্ন:
convertToFive(N/10)*10 + last_digit।
উদাহরণ
#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;
return 0;
}
আউটপুট
14556