首頁 >後端開發 >C++ >使用給定的括號,在C程式中列印平衡的括號表達式

使用給定的括號,在C程式中列印平衡的括號表達式

王林
王林轉載
2023-09-09 23:13:021192瀏覽

使用給定的括號,在C程式中列印平衡的括號表達式

給定四個變數a、b、c、d,它們具有預先定義的值,根據使用的變數列印給定的括號。

其中變量,

a for ((
b for ()
c for )(
d for ))

任務是使用所有給定的括號並列印平衡括號表達式,如果不能形成平衡括號表達式則列印 -1。如果有多個答案,我們可以列印使用給定括號形成的多個答案中的任何一個。

範例

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

為了達到這個結果,我們可以先檢查是否可以用給定數量的括號組成平衡括號表達式。如果表達式可以由給定數量的括號構成,那麼我們就可以。

  • 列印類型 1 括號的數量。
  • 列印類型的數量3 個括號。
  • 列印類型 4 括號的數量。
  • 列印類型 2 括號的數量。

以下是演算法和實作該方法的。

演算法

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&rsquo;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&#39;t be formed");
}
int main(){
   int a = 3, b = 2, c = 4, d = 3;
   print(a, b, c, d);
   return 0;
}

輸出

#如果我們執行上面的程序,那麼它將產生以下輸出

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

以上是使用給定的括號,在C程式中列印平衡的括號表達式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除