蓝桥——括号合法组合 2020-11-26

简介: 蓝桥——括号合法组合 2020-11-26

【编程实现】(给原题做了一番改动,感觉这样更有意思。)

循环以及循环的嵌套,是同学们编写程序时常见的操作。如果用一对括号来代表一个循环的话,那么三个循环出现的合法组合有5种,分别为:“{}{}{} ”、“{{{}}}”、“{{}{}}”、“{{}}{}”、“{}{{}}”。

输入:一个数字n(1<=n<=10),代表循环的个数。

输出:输出n个循环的合法组及组合个数。

【评判标准】

3分:能正确输出一组数据;

5分:能正确输出两组数据;

7分:能正确输出三组数据;

9分:能正确输出四组数据;

11分:能正确输出五组数据。

样例输入1:

2

样例输出1:

{}{}

{{}}

2

样例输入2:

3

样例输出2:

{}{}{}

{{}}{}

{}{{}}

{{}{}}

{{{}}}

5

1. #include <stdio.h>
2. #include <iostream>
3. using namespace std;
4. int n,lf,rt,s,tj,tmp;
5. int aa[65]; 
6. int main(int argc, char *argv[])
7. {
8.  scanf("%d",&n);
9.  int m=1,t=1,a=0,b=0;
10.   tj=0;
11.   for(int i=1;i<=2*n;i++){
12.     if(i%2==0)a+=t;
13.     if(i>n)b+=t;
14.     t*=2; 
15.   }
16. //  cout<<a<<" "<<b<<endl;
17.   for(int j=a;j<=b;j++){
18.     t=j;
19.     lf=rt=0;s=1;
20.     memset(aa,0,sizeof(aa));
21.     while(t>0){
22.       if(t&1){lf++;aa[s]=1;}
23.       else {rt++;aa[s]=0;}
24.       if(lf>rt)break;
25.       s++;  
26.       t=t>>1;
27.     }
28.     if(aa[1]==0&&lf==rt&&lf==n){
29.       tj++;
30.       for(int i=1;i<s;i++){
31.         if(aa[i]==0) printf("{");
32.         else printf("}");
33.       }
34.       printf("\n");
35.     }
36.   }
37.   printf("%d\n",tj);
38.   return 0;
39. }

 

相关文章
|
6月前
数组外面包了引号,怎么去掉外面的引号,变成原来的数组
数组外面包了引号,怎么去掉外面的引号,变成原来的数组
27 0
|
2月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
29 0
|
3月前
正则表达前一个元素至少出现一次
正则表达前一个元素至少出现一次
35 4
|
9月前
|
设计模式 Java Spring
这个无敌设计,可以解析并运算任意数学表达式
下面用解释器模式来实现一个数学表达式计算器,包含加、减、乘、除运算。 首先定义抽象表达式角色IArithmeticInterpreter接口。
55 0
|
5月前
|
C语言
C语言第二十八弹--输入一个非负整数,返回组成它的数字之和
C语言第二十八弹--输入一个非负整数,返回组成它的数字之和
|
6月前
|
算法 搜索推荐 程序员
C语言第十六练——数字组合匹配
C语言第十六练——数字组合匹配
62 0
|
10月前
如何用正则表达式判断手机号格式正不正确
如何用正则表达式判断手机号格式正不正确
102 0
如何用简单的方法来判断一个字符串是否是由另一个字符串旋转得来的
如何用简单的方法来判断一个字符串是否是由另一个字符串旋转得来的
|
算法 前端开发 JavaScript
【前端算法】判断一个字符串的括号是否成对匹配
使用typescript完成判断一个字符串的括号是否成对匹配的过程
|
Python
【python实战】top1 数字组合——有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
【python实战】top1 数字组合——有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
484 0
【python实战】top1 数字组合——有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?