#include #include char anagram[100]; // 00000000011111111112222222 // 12345678901234567890123456 char letters[27] = ".ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int vowels[27] = {0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0}; int maxlength = 6; int target = 157; int total = 0; int gotvowel = 0; int needvowels = 1; unsigned long long int attempts = 0; unsigned long long int matches = 0; int out (int position) { int i; for (i=0;i<=position;i++) { printf("%c",anagram[i]); } printf("\n"); return 0; } int recur(int position,int start) { int i = start; int oldvowel = 0; if (((maxlength-position+1)*26)= 22) && (gotvowel < needvowels)) { return; } if (gotvowel > needvowels) { return; } for (i=start;i<=26;i++) { if (((maxlength-(position+2))*26)=needvowels)) { // On the button! matches++; anagram[position] = letters[i]; total += i; out(position); total -= i; } gotvowel = oldvowel; } return 0; } int main(int argc,char *argv[]) { if (argc >= 2) { target = atoi(argv[1]); } printf("Target: %d\n",target); if (argc >= 3) { maxlength = atoi(argv[2]); } printf("Maxlen: %d\n",maxlength); if (argc >= 4) { needvowels = atoi(argv[3]); } recur(0,1); printf("Target: %d\n",target); printf("Maxlen: %d\n",maxlength); printf("Vowels needed: %d\n",needvowels); printf("Matches: %lld\n",matches); printf("Attempts: %lld\n",attempts); return 0; }