हमें एक स्ट्रिंग दी गई है जिसमें एक संख्या है। लक्ष्य है पुनरावर्ती atoi() विधि का उपयोग करके समतुल्य संख्या ढूंढना। int atoi(const char *str) स्ट्रिंग तर्क str को पूर्णांक (प्रकार int) में परिवर्तित करता है।
उदाहरण-:
इनपुट - Str[] = "58325"
आउटपुट - समतुल्य दशमलव है: 58325
व्याख्या - स्ट्रिंग में समतुल्य संख्या 58325 है
इनपुट - Str[] = "00010"
आउटपुट - समतुल्य दशमलव है: 10
व्याख्या - स्ट्रिंग में समतुल्य संख्या 10 है।
उपयोग किया गया दृष्टिकोण
इस दृष्टिकोण में हम पुनरावर्ती फ़ंक्शन recurAtoi() का उपयोग कर रहे हैं जो इनपुट स्ट्रिंग और इसकी लंबाई लेता है और प्रत्येक वर्ण के लिए इसे दशमलव में बदलता है और इसे 10 से गुणा करता है। इसमें पिछले परिणामों को जोड़ता है।
संख्या वाली इनपुट स्ट्रिंग Str[] लें।
strlen(Str) का उपयोग करके इसकी लंबाई की गणना करें।
फ़ंक्शन recurAtoi(char *str, int len) इनपुट लेता है और पुनरावर्ती atoi() कार्यक्षमता का उपयोग करके गणना की गई संख्या लौटाता है।
यदि लंबाई 1 है तो digit *str -'0' लौटाएं।
temp=10*recurAtoi(str,len-1) लें।
और temp=temp+str[len-1]-'0' सेट करें।
अंत में 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