Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cài đặt đệ quy hàm atoi() trong C++


Cho một chuỗi chứa số. Mục tiêu là tìm số tương đương bằng phương pháp atoi() đệ quy. int atoi(const char *str) chuyển chuỗi str sang nguyên (int).

Ví dụ

Đầu vào - Str[] = "58325"

Đầu ra - Số thập phân tương đương: 58325

Giải thích - Chuỗi chứa số 58325.

Đầu vào - Str[] = "00010"

Đầu ra - Số thập phân tương đương: 10

Giải thích - Chuỗi chứa số 10.

Phương pháp sử dụng trong chương trình dưới đây

Dùng hàm đệ quy recurAtoi() nhận chuỗi và độ dài. Với mỗi ký tự chuyển sang số, nhân 10 và cộng kết quả đệ quy của phần trước.

  • Nhập chuỗi Str[] chứa số.

  • Tính độ dài strlen(Str).

  • Hàm recurAtoi(char *str, int len) trả về số bằng atoi đệ quy.

  • Nếu len == 1 trả về *str - '0'.

  • temp = 10 * recurAtoi(str, len-1); temp += str[len-1] - '0'; return temp.

  • In kết quả.

Ví dụ mã

#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<<"Số thập phân tương đương :"<<recurAtoi(Str, length);    return 0; }

Đầu ra

Nếu chạy mã trên sẽ cho kết quả:

Số thập phân tương đương : 58325