কম্পিউটার

C++ এ atoi() এর পুনরাবৃত্তিমূলক বাস্তবায়ন


আমরা একটি সংখ্যা সম্বলিত একটি স্ট্রিং দেওয়া হয়. লক্ষ্য হল পুনরাবৃত্তিমূলক atoi() পদ্ধতি ব্যবহার করে সমতুল্য সংখ্যা খুঁজে বের করা। int atoi(const char *str) স্ট্রিং আর্গুমেন্ট str কে পূর্ণসংখ্যাতে রূপান্তর করে (টাইপ int)।

উদাহরণ-:

ইনপুট − Str[] ="58325"

আউটপুট − সমতুল্য দশমিক হল :58325

ব্যাখ্যা − স্ট্রিংটিতে সমতুল্য সংখ্যা 58325

রয়েছে

ইনপুট − Str[] ="00010"

আউটপুট − সমতুল্য দশমিক হল :1

ব্যাখ্যা − স্ট্রিংটিতে সমতুল্য সংখ্যা 10 আছে।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

এই পদ্ধতিতে আমরা রিকার্সিভ ফাংশন recurAtoi() ব্যবহার করছি যা ইনপুট স্ট্রিং এবং এর দৈর্ঘ্য নেয় এবং প্রতিটি অক্ষরের জন্য এটি দশমিকে রূপান্তর করে 10 দিয়ে গুণ করে। এতে পূর্ববর্তী ফলাফল যোগ করুন।

  • একটি সংখ্যা ধারণকারী ইনপুট স্ট্রিং Str[] নিন।

  • strlen(Str) ব্যবহার করে এর দৈর্ঘ্য গণনা করুন।

  • ফাংশন recurAtoi(char *str, int len) ইনপুট নেয় এবং recursive atoi() কার্যকারিতা ব্যবহার করে গণনা করা সংখ্যা ফেরত দেয়।

  • যদি দৈর্ঘ্য 1 রিটার্ন ডিজিট *str -’0’ হয়।

  • temp=10*recurAtoi(str,len-1) নিন।

  • এবং temp=temp+str[len-1]-'0' সেট করুন।

  • শেষে টেম্প রিটার্ন।

  • প্রিন্ট ফলাফল।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int recurAtoi(char *str, int len){
   if (len == 1){
      return *str - '0';
   }
   int temp=10*recurAtoi(str,len-1);
   temp=temp+str[len-1]-'0';
   return (temp);
}
int main(void){
   char Str[] = "58325";
   int length = strlen(Str);
   cout<<"Equivalent decimal :"<<recurAtoi(Str, length);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Equivalent decimal : 58325

  1. C++ এ রেখার প্রতিফলন

  2. পুনরাবৃত্ত বুদ্বুদ সাজানোর জন্য C++ প্রোগ্রাম?

  3. 4-রঙের সমস্যা বাস্তবায়নের জন্য C++ প্রোগ্রাম

  4. C++ এ static_cast