Recursive

#include <stdio.h>
#include <stdlib.h>

int input;
int max;
char output[30];

void recursive(int, int, int);

int main() {
	while(scanf("%d",&input)!=EOF){
		max=input*2;
		recursive(0, 0, 0);
	}
	return 0;
}

// num : 括號總數量
void recursive(int left, int right, int num) {
	if(left > input || right > left) 
	    //不合法情形,左括號過多 或 右括號多於左括號
		return;
	if(num == max) {
	    // 括號總數量已滿,進行輸出
	    // 陣列的結尾 為 '\\0'
		output[num] = '\\0';
		printf("%s\\n", output);
		return;
	}
	// 將左括號洗入陣列,左指標+1,總數量也+1
	output[num] = '(', recursive(left + 1, right, num + 1);
	output[num] = ')', recursive(left, right + 1, num + 1);
}