Heim  >  Artikel  >  Backend-Entwicklung  >  Implementieren Sie die Funktion atoi() rekursiv in C++

Implementieren Sie die Funktion atoi() rekursiv in C++

PHPz
PHPznach vorne
2023-08-27 13:57:09767Durchsuche

Implementieren Sie die Funktion atoi() rekursiv in C++

Wir erhalten eine Zeichenfolge mit Zahlen. Ziel ist es, mit der rekursiven Methode atoi() äquivalente Zahlen zu finden. int atoi(const char *str) Konvertiert das String-Argument str in eine Ganzzahl (Typ int).

Beispiel:

Eingabe− Str[] = "58325"

Ausgabe− Die entsprechende Dezimalzahl ist: 58325

Erläuterung− Die Zeichenfolge enthält die entsprechende Zahl. 58325

Eingabe − Str[ ] = "00010"

Ausgabe− Die entsprechende Dezimalzahl ist: 1

Erläuterung – Diese Zeichenfolge enthält die entsprechende Zahl 10.

Die im folgenden Programm verwendete Methode lautet wie folgt:

In dieser Methode verwenden wir die rekursive Funktion recurAtoi(), um die Eingabezeichenfolge und ihre Länge abzurufen, sie für jedes Zeichen in eine Dezimalzahl umzuwandeln und mit 10 zu multiplizieren. Fügen Sie die vorherigen Ergebnisse hinzu.

  • Nehmen Sie die Eingabezeichenfolge Str[], die Zahlen enthält.

  • Verwenden Sie strlen(Str), um seine Länge zu berechnen.

  • Funktion recurAtoi(char *str, int len) akzeptiert Eingaben und gibt eine Zahl zurück, die mit der rekursiven Funktion atoi() berechnet wurde.

  • Wenn die Länge 1 ist, wird die Zahl *str -'0' zurückgegeben.

  • Take temp=10*recurAtoi(str,len-1).

  • und setze temp=temp+str[len-1 ]-'0'.

  • Endlich kehrt die Temperatur zurück.

  • Drucken Sie die Ergebnisse aus.

Beispiel

#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;
}

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

Equivalent decimal : 58325

Das obige ist der detaillierte Inhalt vonImplementieren Sie die Funktion atoi() rekursiv in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen