কম্পিউটার টিউটোরিয়াল

C++-এ স্ট্যাক ব্যবহার করে সংখ্যা রিভার্স করুন


একটি পূর্ণসংখ্যা 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;

stack stck;

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
  1. C++ কিউ ব্যবহার করে BST-এ একটি পথ রিভার্স করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  3. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন