Étant donné quatre variables a, b, c, d, qui ont des valeurs prédéfinies, imprimez les parenthèses données en fonction des variables utilisées.
Où variable,
a for (( b for () c for )( d for ))
La tâche consiste à utiliser toutes les parenthèses données et à imprimer l'expression entre parenthèses équilibrées, ou -1 si l'expression entre parenthèses équilibrées ne peut pas être formée. S'il y a plusieurs réponses, nous pouvons imprimer n'importe laquelle des réponses multiples formées à l'aide des parenthèses données.
Input: a = 3, b = 2, c = 4, d = 3 Output : (((((()()()()())))))()()
Pour obtenir ce résultat, nous pouvons d'abord vérifier si une expression de parenthèses équilibrée peut être formée avec un nombre de parenthèses donné. Si l’expression peut être construite à partir d’un nombre donné de parenthèses, alors nous le pouvons.
Ce qui suit est l'algorithme et la mise en œuvre de la méthode.
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; }
Si nous exécutons le programme ci-dessus, il générera la sortie suivante
(((((()()()()())))))()()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!