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

C++-এ atoi() ফাংশনের রিকারসিভ বাস্তবায়ন


একটি সংখ্যা ধারণকারী স্ট্রিং দেওয়া থাকলে, রিকারসিভ atoi() পদ্ধতিতে সমতুল্য পূর্ণসংখ্যা বের করতে হবে।

উদাহরণ

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

আউটপুট − সমতুল্য ডেসিমাল: 58325

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

আউটপুট − সমতুল্য ডেসিমাল: 10

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

রিকারসিভ ফাংশন recurAtoi(char *str, int len) প্রতিটি ক্যারাক্টারকে ডিজিটে রূপান্তর করে ১০ দিয়ে গুণ করে যোগ করে।

  • ইনপুট স্ট্রিং Str[] ও দৈর্ঘ্য len নিন।

  • যদি len == 1 হয়, *str - '0' ফেরত দিন।

  • temp = 10 * recurAtoi(str, len-1); temp += str[len-1] - '0'; return temp;।

উদাহরণ কোড

#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++-এ Line Reflection: ২D প্লেনে বিন্দুগুলোর Y-অক্ষ সমান্তরাল প্রতিফলন লাইন আছে কিনা যাচাই করা

  2. C++-এ রিকার্সিভ বাবল সর্ট (Recursive Bubble Sort)

  3. C++ প্রোগ্রাম: ৪-কালার সমস্যা বাস্তবায়ন

  4. C++-এ static_cast