C++中atoi()的遞迴實現
給定一個包含數字的字串。目標是使用遞迴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,則返回數字*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
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP