#include <stdio.h> #include <string.h> #include <assert.h> #define MAX 26 int main(void) { char digits[MAX]; int n; int iCnt; int iControl; memset(digits,0,sizeof(digits)); scanf("%d",&n); assert(n <= MAX); printf("n = %d/n",n); printf("{}/n"); digits[0] = 1; iControl = 1; while (1) { printf("{"); for (iCnt = 0; iCnt < iControl;++iCnt) printf("%c ",'A'+digits[iCnt] - 1); printf("}/n"); if (iControl == 1 && digits[0] == n) return 0; if (digits[iControl-1] < n) { digits[iControl] = digits[iControl-1] + 1; iControl++; } else { iControl--; digits[iControl-1]++; } } return 0; }