একটি নম্বর n দেওয়া থাকলে, আমাদের ঐ নম্বর থেকে একটি ডিজিট x বের করে অন্য দেওয়া নম্বর m দিয়ে রিপ্লেস করতে হবে। আমাদের খুঁজে বের করতে হবে নম্বরটি দেওয়া নম্বরে আছে কিনা, যদি থাকে তবে সেই নির্দিষ্ট নম্বর x কে অন্য নম্বর m দিয়ে রিপ্লেস করব।
যেমন আমাদের নম্বর "123" দেওয়া এবং m = 5 এবং রিপ্লেস করার নম্বর x = "2", তবে রেজাল্ট হবে "153"।
উদাহরণ
ইনপুট: n = 983, digit = 9, replace = 6 আউটপুট: 683 ব্যাখ্যা: 983-এ 9 হলো প্রথম ডিজিট এবং আমাদের 9 কে 6 দিয়ে রিপ্লেস করতে হবে তাই রেজাল্ট 683। ইনপুট: n = 123, digit = 5, replace = 4 আউটপুট: 123 ব্যাখ্যা: দেওয়া নম্বরে 5 ডিজিট নেই তাই রেজাল্ট নম্বর n-এর মতোই থাকবে।
নিচে ব্যবহৃত পদ্ধতি −
- ইউনিট প্লেস থেকে শুরু করে নম্বরটি খুঁজে বের করব যখন রিপ্লেস করার ডিজিটটি পাওয়া যাবে তবে রেজাল্টে (replace * d) যোগ করব যেখানে d = 1।
- যদি নম্বরটি না পাওয়া যায় তবে সেটি যেনের মত রাখব।
অ্যালগরিদম
function int digitreplace(int n, int digit, int replace) এ
ধাপ ১ → res=0, d=1, rem ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → লুপ While(n)
rem = n%10 সেট
If rem == digit then,
res = res + replace * d সেট
Else
res = res + rem * d সেট
d *= 10;
n /= 10;
End Loop
ধাপ ৩ → res প্রিন্ট
End function
function int main(int argc, char const *argv[]) এ
ধাপ ১ → n = 983, digit = 9, replace = 7 ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → digitreplace(n, digit, replace) ফাংশন কল
Stop
উদাহরণ
#include <stdio.h>
int digitreplace(int n, int digit, int replace) {
int res=0, d=1;
int rem;
while(n) {
// পেছন থেকে রিমাইন্ডার বের করা
rem = n%10;
// চেক করা রিমাইন্ডার আমাদের রিপ্লেস করতে চাওয়া
// ডিজিটের সমান কিনা। হ্যাঁ হলে রিপ্লেস।
if(rem == digit)
res = res + replace * d;
// না হলে রিপ্লেস না করে একই ভাবে res-এ স্টোর।
else
res = res + rem * d;
d *= 10;
n /= 10;
}
printf("%d\n", res);
return 0;
}
// main ফাংশন
int main(int argc, char const *argv[]) {
int n = 983;
int digit = 9;
int replace = 7;
digitreplace(n, digit, replace);
return 0;
}
উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −
783