এই নিবন্ধে, আমাদের একটি সংখ্যা n দেওয়া হয়েছে, এবং আমাদের একটি প্রদত্ত সংখ্যার বারবার সংখ্যাগুলি সরাতে হবে৷
Input: x = 12224 Output: 124 Input: x = 124422 Output: 1242 Input: x = 11332 Output: 132
প্রদত্ত সমস্যাটিতে, আমরা সমস্ত সংখ্যার মধ্য দিয়ে যাব এবং পুনরাবৃত্তি করা সংখ্যাগুলিকে সরিয়ে দেব।
সমাধান খোঁজার পদ্ধতি
প্রদত্ত পদ্ধতিতে, আমরা এখন ডান থেকে বামে n-এর সমস্ত অঙ্কের মধ্য দিয়ে যাব। আমরা 10 দিয়ে n এর mod নিয়ে এবং তারপর 10 দিয়ে n কে ভাগ করে n এর ডিজিটের মধ্য দিয়ে যাই। এখন আমাদের বর্তমান ডিজিট হল n mod 10। আমরা এটিকে আগের ডিজিট দিয়ে পরীক্ষা করি। সংখ্যা সমান হলে, আমরা এখন n অতিক্রম করব। যদি তারা একই রকম না হয়, আমরা এই সংখ্যাটি আমাদের নতুন নম্বরে যোগ করি, আগের সংখ্যাটিকে বর্তমানে পরিবর্তন করি এবং লুপটি চালিয়ে যাই।
উদাহরণ
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
int main() {
int n = 1222333232; // given n
int new_n = 0; // new number
int po = 1; // will b multiple of ten for new digits
int prev = -1; // previous digit
int curr; // current digit
while(n) {
curr = n % 10;
if(prev != curr) { // if a digit is not repeated then we go in this block
new_n = new_n + (curr * po); // we add a new digit to new_n
po *= 10;
prev = curr;
}
n /= 10;
}
cout << new_n << "\n";
return 0;
} আউটপুট
123232
উপরের কোডের ব্যাখ্যা
উপরের পদ্ধতিতে, আমরা এখন কেবল n-এর অঙ্কগুলি অতিক্রম করছি যখন আমাদের পূর্ববর্তী অঙ্ক এবং বর্তমান অঙ্ক মেলে না, আমরা আমাদের নতুন সংখ্যাতে এই জাতীয় অঙ্ক যোগ করি এবং আমাদের অঙ্ক যোগ করার সাথে সাথে আমরা poও বৃদ্ধি করি, যা হল এখন আমাদের সংখ্যার অবস্থানের জন্য ব্যবহার করা হচ্ছে যদি আমাদের বর্তমান এবং পূর্ববর্তী সংখ্যাগুলি মিলে যায়-আমরা এই ব্লকটি চালাব না এবং আমাদের n 0 না হওয়া পর্যন্ত লুপ চালিয়ে যাব।
উপসংহার
এই নিবন্ধে, আমরা একটি প্রদত্ত সংখ্যার বারবার সংখ্যাগুলি সরানোর জন্য একটি সমস্যার সমাধান করি৷ আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি (সাধারণ) শিখেছি যার মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আমরা আশা করি আপনার এই নিবন্ধটি সহায়ক হবে৷