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

Cộng 1 vào số biểu diễn bằng mảng chữ số trong C

Số được lưu dưới dạng mảng chữ số (ví dụ 512 -> {5,1,2}). Tăng số lên 1 dùng đệ quy.

Thuật toán

increment(arr, n, index=0)
    NẾU index < n
        NẾU arr[index] < 9: arr[index]++
        NGƯỢC LẠI: arr[index]=0; increment(arr,n,index+1)
    NẾU index == n: arr[n]=1; n++

Chương trình C++ ví dụ

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;

void increment(int num_arr[], int &n, int index=0) {
    if (index < n) {
        if (num_arr[index] < 9) num_arr[index]++;
        else { num_arr[index]=0; increment(num_arr,n,index+1); }
    }
    if (index == n) { num_arr[n]=1; n++; }
}

void dispNumber(int num_arr[], int n) {
    for (int i=n-1;i>=0;i--) cout << num_arr[i];
    cout << endl;
}

int numToArr(int num_arr[], int number) {
    int n = log10(number)+1;
    for (int i=0;i

Kết quả

Initial Number: 1782698599
Final Number: 1782698600