একটি নাম্বারের ডিজিট রিভার্স করার প্রোগ্রাম ডিজিটগুলোর পজিশন ইন্টারচেঞ্জ করবে এবং তাদের অর্ডার রিভার্স করবে।
মান লইয়া যাক একটি নাম্বার abcde, এর রিভার্স হবে edcba।
একটি উদাহরণ দিয়ে সমস্যাটি বুঝতে পারি,
ইনপুট
n = 786521
আউটপুট
125687
নাম্বারের ডিজিট রিভার্স করতে, আমরা নাম্বারের প্রতিটি ডিজিট MSB (ইউনিট ডিজিট) থেকে নেব এবং রিভার্স নাম্বার ভেরিয়েবলে যোগ করব, এরপর অরিজিনাল নাম্বার ১০ দিয়ে ভাগ করব এবং রিভার্স_নাম্বার ১০ দিয়ে গুন করব। এটি নাম্বার ০ হওয়া পর্যন্ত চলবে।
এই রিপিটেটিভ প্রসেস দুটি মেথডে করা যায়, ইটেরেশন এবং রিকারশন, আমরা দুটি মেথড ইলাস্ট্রেট করার প্রোগ্রাম তৈরি করব।
উদাহরণ
মেথড ১: ইটেরেটিভ পদ্ধতি
#include <iostream>
using namespace std;
int reversDigitsIt(int n) {
int reverseNumber = 0;
while (n > 0) {
reverseNumber = reverseNumber * 10 + n % 10;
n /= 10;
}
return reverseNumber;
}
int main() {
int n = 4562;
cout << "The number is: " << n << endl;
cout << "Reverse of number is " << reversDigitsIt(n);
return 0;
}
আউটপুট
The number is: 4562 Reverse of number is 2654
উদাহরণ
মেথড ২: রিকারসিভ পদ্ধতি
#include <iostream>
using namespace std;
int reverseNumber = 0;
int numPos = 1;
void reversDigitsRec(int n) {
if (n > 0) {
reversDigitsRec(n / 10);
reverseNumber += (n % 10) * numPos;
numPos *= 10;
}
}
int main() {
int n = 4562;
cout << "The number is: " << n << endl;
reversDigitsRec(n);
cout << "Reverse of number is " << reverseNumber;
return 0;
}
আউটপুট
The number is: 4562 Reverse of number is 2654