程式題,沒有規定用什麼語言:
n個選項,每個選項裡面又有若干個子選項,從每個選項中選一個子選項,一共有多少個組合。
#include
#define N 3 //選項數
#define Alen 3 //第一個選項的子選項數
#define Blen 3 //第二個選項的.子選項數
#define Clen 3 //第三個選項的子選項數
int num = 0; //總的組合數
char A[N][Alen] = {{’A', ‘B’, ‘C’}, {’D', ‘E’, ‘F’}, {’H', ‘I’, ‘J’}};//3個選項,每個選項有3個子選項
int Len[N] = {Alen, Blen, Clen};//每個選項的子選項數
int Path[N];//儲存一個組合
void Recrusive(int i)
{
//超過N層輸出結果並且退出迴圈
if (i >= N)
{
int k;
num++;
printf(”%d: “,num);
for (k = 0; k < N; k++)
{
printf(”%c “, Path[k]);
}
printf(”n”);
return;
}
int j ;
for (j = 0; j < Len[i]; j++)
{
//儲存遍歷字元
Path[i] = A[i][j];
//呼叫下層迴圈
Recrusive(i + 1);
}
}
void main()
{ Recrusive(0);
}