首頁 >後端開發 >C++ >在C++中遞歸實作atoi()函數

在C++中遞歸實作atoi()函數

PHPz
PHPz轉載
2023-08-27 13:57:09844瀏覽

在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) 接受輸入並傳回使用遞歸 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 - &#39;0&#39;;
   }
   int temp=10*recurAtoi(str,len-1);
   temp=temp+str[len-1]-&#39;0&#39;;
   return (temp);
}
int main(void){
   char Str[] = "58325";
   int length = strlen(Str);
   cout<<"Equivalent decimal :"<<recurAtoi(Str, length);
   return 0;
}

輸出

如果我們執行上面的程式碼,它將產生以下輸出

Equivalent decimal : 58325
#

以上是在C++中遞歸實作atoi()函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除