#20865: ac c++


yp10870939 (etydhtet fyh ryj jye uotrh tr...)


#include <stdio.h>  :)

int n, max;
char paren[30];

void dfs(int open, int close, int now)
{
if (open > n || open < close)
return;
if (now == max)
{
puts(paren);
return;
}
paren[now] = '(', dfs(open + 1, close, now + 1);
paren[now] = ')', dfs(open, close + 1, now + 1);
}

int main()
{
while (scanf(" %d", &n) == 1)
{
max = n << 1;
dfs(0, 0, 0);
putchar('\n');
}
return 0;
}

c++ ac
#20882: Re:ac c++


kobe60116@gmail.com (xlonely_cat 孤貓)


#include   :)

int n, max;
char paren[30];

void dfs(int open, int close, int now)
{
if (open > n || open < close)
return;
if (now == max)
{
puts(paren);
return;
}
paren[now] = '(', dfs(open + 1, close, now + 1);
paren[now] = ')', dfs(open, close + 1, now + 1);
}

int main()
{
while (scanf(" %d", &n) == 1)
{
max = n << 1;
dfs(0, 0, 0);
putchar('\n');
}
return 0;
}

c++ ac



請注意:您正在編寫「解題報告」,請勿直接貼出完整程式碼(將被隱藏),而是請說明解題思路、所需使用的演算法...等,讓不會寫的使用者可以從中學習獲得成長。

#38851: Re: ac c++


blocker_nagnto (淵空)


#include   :)

int n, max;
char paren[30];

void dfs(int open, int close, int now)
{
if (open > n || open < close)
return;
if (now == max)
{
puts(paren);
return;
}
paren[now] = '(', dfs(open + 1, close, now + 1);
paren[now] = ')', dfs(open, close + 1, now + 1);
}

int main()
{
while (scanf(" %d", &n) == 1)
{
max = n << 1;
dfs(0, 0, 0);
putchar('\n');
}
return 0;
}

c++ ac



請注意:您正在編寫「解題報告」,請勿直接貼出完整程式碼(將被隱藏),而是請說明解題思路、所需使用的演算法...等,讓不會寫的使用者可以從中學習獲得成長。

這不是解題報告 是解答討論