একটি সংখ্যা ধারণকারী স্ট্রিং দেওয়া থাকলে, রিকারসিভ 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