Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Laksanakan fungsi atoi() secara rekursif dalam C++

Laksanakan fungsi atoi() secara rekursif dalam C++

PHPz
PHPzke hadapan
2023-08-27 13:57:09815semak imbas

Laksanakan fungsi atoi() secara rekursif dalam C++

Kami mendapat rentetan yang mengandungi nombor. Matlamatnya adalah untuk mencari nombor setara menggunakan kaedah atoi() rekursif. int atoi(const char *str) Menukar hujah rentetan str kepada integer (jenis int).

Contoh:

Input− Str[] = "58325"

Output− Perpuluhan setara ialah: 58325

Penjelasan nombor bersamaan 35

Input− Str[ ] = "00010"

Output− Perpuluhan yang setara ialah: 1

Penjelasan - Rentetan ini mengandungi nombor yang setara 10.

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

Dalam kaedah ini kita menggunakan fungsi rekursif recurAtoi() untuk mendapatkan rentetan input dan panjangnya, untuk setiap aksara menukarnya kepada perpuluhan dan darab dengan 10. Tambahkan hasil sebelumnya padanya.

  • Ambil rentetan input Str[] yang mengandungi nombor.

  • Gunakan strlen(Str) untuk mengira panjangnya.

  • Fungsi recurAtoi(char *str, int len) menerima input dan mengembalikan nombor yang dikira menggunakan fungsi atoi() rekursif.

  • Jika panjangnya 1, kembalikan nombor *str -'0'.

  • Ambil suhu=10*recurAtoi(str,len-1).

  • dan tetapkan temp=temp+str[len-1 ]-'0'.

  • Akhirnya mengembalikan suhu.

  • Cetak hasilnya.

Contoh

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

Output

Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut

Equivalent decimal : 58325

Atas ialah kandungan terperinci Laksanakan fungsi atoi() secara rekursif dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam