কম্পিউটার

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


ইনপুট হিসাবে আমাদের একটি পূর্ণসংখ্যা সংখ্যা দেওয়া হয়েছে। লক্ষ্য স্ট্যাক ব্যবহার করে সংখ্যার বিপরীত খুঁজে বের করা।

স্ট্যাক :- একটি স্ট্যাক হল C++ এর একটি ডেটা স্ট্রাকচার যা LIFO ( Last in First Out) পদ্ধতিতে ডেটা সংরক্ষণ করে। স্ট্যাকের প্রধান কাজগুলি হল-:

ঘোষণা-:স্ট্যাক stck; //stck এখন একটি স্ট্যাক ভেরিয়েবল।

  • top() ব্যবহার করে শীর্ষ খোঁজা হচ্ছে . ফাংশন stck.top() stck এ শীর্ষ উপাদানের রেফারেন্স প্রদান করে

  • pop() ব্যবহার করে শীর্ষ সরানো হচ্ছে . ফাংশন stck থেকে শীর্ষস্থানীয় উপাদান সরিয়ে দেয়

  • পুশ() ব্যবহার করে শীর্ষে উপাদান যোগ করা হচ্ছে . ফাংশন stck.push( মান ) স্ট্যাকে আইটেম মান যোগ করে। মান stck টাইপ হওয়া উচিত।

  • empty() ব্যবহার করে স্ট্যাক্সক খালি কিনা তা পরীক্ষা করুন . স্ট্যাক খালি থাকলে ফাংশন stck.empty() true ফেরত দেয়।

উদাহরণ

ইনপুট − সংখ্যা =33267

আউটপুট − সংখ্যার বিপরীত হল:76233

ব্যাখ্যা

প্রথমে আমরা সমস্ত উপাদানকে স্ট্যাক করার জন্য ঠেলে দেব

7 - 6 - 2 - 3 - 3 ← শীর্ষ

7 * 10000 + 6 * 1000 + 2*100 + 3*10 + 3*1 ←

=70000 + 6000 + 200 + 30 + 3 ←

=76233

ইনপুট − সংখ্যা =111000

আউটপুট − সংখ্যার বিপরীত হল:111

ব্যাখ্যা

প্রথমে আমরা সমস্ত উপাদানকে স্ট্যাক করার জন্য ঠেলে দেব

0 - 0 - 0 - 1 - 1 - 1 ← শীর্ষ

0 * 100000 + 0 * 10000 + 0*1000 + 1*100 + 1*10 + 1*1 ←

=0 + 0 + 0 + 100 + 10 + 1 ←

=111

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা প্রথমে ইনপুট সংখ্যার অবশিষ্টাংশ নেব এবং স্ট্যাকের দিকে চাপ দিব এবং সংখ্যা 0 না হওয়া পর্যন্ত সংখ্যা 10 কমিয়ে ফেলব। এইভাবে স্ট্যাকটি প্রথম সংখ্যা হিসাবে শীর্ষ দিয়ে পূর্ণ হবে।

  • ইনপুট নম্বর নিন।

  • Stack stck.

    ব্যবহার করে পূর্ণসংখ্যার জন্য খালি স্ট্যাক নিন
  • ফাংশন pushDigts(int num1) num1 নেয় এবং উপরে প্রথম ডিজিট সহ স্ট্যাকের সাথে যোগ করে।

  • পরিবর্তনশীল হিসাবে rem নিন।

  • একটি সময় লুপ ব্যবহার করে num1 অ-শূন্য কিনা তা পরীক্ষা করুন, যদি সত্য হয় তাহলে rem=num1%10 সেট করুন।

  • স্ট্যাক করতে rem চাপুন।

  • 2য় ডিজিটের জন্য num1 10 দ্বারা কমিয়ে দিন ইত্যাদি।

  • এখন revrseNum().

    ফাংশন দিয়ে স্ট্যাকের উপাদান ব্যবহার করে সংখ্যাটি বিপরীত করুন
  • ভেরিয়েবল revrs, topp, temp, i.

    নিন
  • স্ট্যাক খালি না থাকা অবস্থায়

  • শীর্ষস্থানীয় উপাদানটিকে topp=stck.top().

    হিসাবে নিন
  • stck.pop().

    ব্যবহার করে স্ট্যাক হ্রাস করুন
  • temp=topp*i.

    সেট করুন
  • রিভার্সে তাপমাত্রা যোগ করুন।

  • 100 এর গুণে i*10 দ্বারা i বাড়ান।

  • শেষে ইনপুট সংখ্যার বিপরীতটি revrs হিসাবে ফেরত দিন।

  • প্রিন্ট ফলাফল প্রধান ভিতরে প্রাপ্ত.

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
stack <int> 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;
   int 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++ সারি ব্যবহার করে বিএসটি-তে একটি পথ বিপরীত করুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ পেন্টাটোপ নম্বর

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