In tất cả số tự nhiên từ 0 tới R bằng đệ quy và digit DP

Đề bài

  • In tất cả số tự nhiên từ 0 tới R bằng đệ quy
  • Số R nhập vào dưới dạng chuỗi

Hướng dẫn giải

(Bữa nảo rảnh thì cập nhật sau)

Code

C++
#include <iostream>
#include <string>
using namespace std;

string numberString;

void printNumbers(string answer, int position, bool tight) {
    if (position == numberString.length()) {
        cout << answer << endl;
        return;
    }

    int limit = tight ? numberString[position] - '0' : 9;
    for (int digit = 0; digit <= limit; ++digit) {
        bool newTight = tight && digit == limit;
        printNumbers(answer + to_string(digit), position + 1, newTight);
    }
}

int main() {
    cin >> numberString;
    printNumbers("", 0, true);

    return 0;
}