Diberi empat pembolehubah a, b, c, d, yang mempunyai nilai pratakrif, cetak kurungan yang diberikan berdasarkan pembolehubah yang digunakan.
Jika boleh ubah,
a for (( b for () c for )( d for ))
Tugasnya ialah menggunakan semua kurungan yang diberikan dan mencetak ungkapan kurungan seimbang, atau -1 jika ungkapan kurungan seimbang tidak dapat dibentuk. Jika terdapat berbilang jawapan, kita boleh mencetak mana-mana daripada berbilang jawapan yang dibentuk menggunakan kurungan yang diberikan.
Input: a = 3, b = 2, c = 4, d = 3 Output : (((((()()()()())))))()()
Untuk mencapai hasil ini, kita boleh menyemak dahulu sama ada ungkapan kurungan seimbang boleh dibentuk dengan bilangan kurungan tertentu. Jika ungkapan itu boleh dibina daripada bilangan kurungan tertentu, maka kita boleh.
Berikut ialah algoritma dan pelaksanaan kaedah tersebut.
START Step 1 -> Declare Function void print(int a, int b, int c, int d) Declare int i IF ((a == d && a) || (a == 0 && c == 0 && d == 0)) Loop For i=1 and i<=a and i++ Print (( End Loop For i=1 and i<=c and i++ Print )( End Loop For i=1 and i<=d and i++ Print )) End Loop For i=1 and i<=b and i++ Print () End Else Print can’t be formed Step 2 -> main() Declare int a = 3, b = 2, c = 4, d = 3 Call print(a,b,c,d) STOP
#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; }
Jika kita menjalankan program di atas maka ia akan menghasilkan output berikut
(((((()()()()())))))()()
Atas ialah kandungan terperinci Cetak ungkapan kurungan seimbang dalam program C menggunakan kurungan yang diberikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!