একটি পূর্ণসংখ্যা Num দেওয়া থাকলে, স্ট্যাক ব্যবহার করে তার রিভার্স বের করতে হবে।
স্ট্যাক:- LIFO (Last In First Out) ডেটা স্ট্রাকচার। মূল অপারেশন: top(), pop(), push(), empty()।
উদাহরণ
ইনপুট − Num = 33267
আউটপুট − সংখ্যার রিভার্স: 76233
ব্যাখ্যা − সংখ্যার অঙ্কগুলো স্ট্যাকে পুশ: 7-6-2-3-3 (টপ)। রিভার্স = 7×10000 + 6×1000 + 2×100 + 3×10 + 3 = 76233।
ইনপুট − Num = 111000
আউটপুট − সংখ্যার রিভার্স: 111
ব্যাখ্যা − স্ট্যাক: 0-0-0-1-1-1। রিভার্স = 111।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
সংখ্যার ভাগশেষ স্টকে পুশ করে সংখ্যা ১০ দিয়ে ভাগ করুন। স্ট্যাক থেকে পপ করিয়ে রিভার্স তৈরি করুন।
ইনপুট
Numনিন।stackঘোষণা করুন।stck pushDigts(int num1)ফাংশনেwhile(num1>0)লুপে রিমেইন্ডার পুশ করুন।revrseNum()ফাংশনে স্ট্যাক খালি না হওয়া পর্যন্ত টপ পপ করিয়ে রিভার্স বানান।i = 1থেকে শুরু করে প্রতিটি ডিজিটকেiদিয়ে গুণ করিয়ে যোগ করুন,i *= 10।ফলাফল প্রিন্ট করুন।
উদাহরণ কোড
#include <bits/stdc++.h> using namespace std; stackstck; void pushDigts(int num1){ int rem; while (num1 > 0){ rem = num1 % 10; stck.push(rem); num1 = num1 / 10; } } int revrseNum(){ int revrs = 0; int i = 1; int temp, topp; while (!stck.empty()){ topp = stck.top(); stck.pop(); temp = topp * i; revrs = revrs + temp; i *= 10; } return revrs; } int main(){ int Num = 43556; pushDigts(Num); cout << "Reverse of number is: " << revrseNum(); return 0; }
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Reverse of number is: 65534