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

Chương trình C++ tìm n dãy ngoặc đúng

Cho số n. Dãy ngoặc đúng là chuỗi chỉ chứa '(' và ')' có thể biến thành biểu thức toán học đúng bằng cách chèn '1' và '+' giữa các ký tự. Ví dụ: ()() đúng vì thành (1)+(1). Hãy tìm đúng n dãy ngoặc đúng khác nhau độ dài 2n.

Ví dụ

Với n = 4, đầu ra: ()()()(), (())()(), ((()))(), (((()))).

Giải thuật

Với k từ 1 đến n: in k dấu '(', rồi k dấu ')', rồi n-k cặp (). Mỗi k cho một dãy khác nhau, tổng cộng n dãy.

Mã C++

#include <bits/stdc++.h>
using namespace std;

void solve(int n) {
    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= k; i++)
            cout << "(";
        for (int i = 1; i <= k; i++)
            cout << ")";
        for (int i = k + 1; i <= n; i++)
            cout << "()";
        cout << endl;
    }
}

int main() {
    int n = 4;
    solve(n);
}

Đầu vào / Đầu ra

Input: 4
Output: ()()()() (())()() ((()))() (((())))