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

In biểu thức ngoặc cân bằng từ các ngoặc cho trước trong C

Cho 4 biến a, b, c, d đại diện cho số lượng 4 loại ngoặc:

  • a cho ((
  • b cho ()
  • c cho )(
  • d cho ))

Dùng tất cả ngoặc cho trước để tạo biểu thức cân bằng, không được thì in -1.

Ví dụ

Input: a=3, b=2, c=4, d=3
Output: (((((()()()()())))))()()

Điều kiện: a == d && a > 0 HOẶC a == 0 && c == 0 && d == 0.

Thuật toán

BẮT ĐẦU
HÀM print(a,b,c,d)
    NẾU (a==d && a) HOẶC (a==0 && c==0 && d==0) THÌ
        IN "(" LẶP a LẦN
        IN ")(" LẶP c LẦN
        IN "))" LẶP d LẦN
        IN "()" LẶP b LẦN
    NGƯỢC LẠI IN "can't be formed"
KẾT THÚC

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

#include <stdio.h>

void print(int a, int b, int c, int d) {
    int i;
    if ((a == d && a) || (a == 0 && c == 0 && d == 0)) {
        for (i = 1; i <= a; i++) printf("((");
        for (i = 1; i <= c; i++) printf(")(");
        for (i = 1; i <= d; i++) printf("))");
        for (i = 1; i <= b; i++) printf("()");
    } else
        printf("can't be formed");
}

int main() {
    int a = 3, b = 2, c = 4, d = 3;
    print(a, b, c, d);
    return 0;
}

Kết quả

(((((()()()()())))))()()