#include <stdio.h>
// a = AAAAA -> 00000 -> 0
// b = AAAAB -> 00001 -> 1
// c = AAABA -> 00010 -> 2
// d = AAABB -> 00011 -> 3
// e = AABAA -> 00100 -> 4
// f = AABAB -> 00101 -> 5
// g = AABBA -> 00110 -> 6
// Convert integer n (0–31) into 5-letter A/B code
void toAB(int n, char out[6]) {
for (int i = 4; i >= 0; --i) {
int bit = (n >> i) & 1; // extract bit
out[4 - i] = bit ? 'B' : 'A';
}
out[5] = '\0'; // null terminator
}
int main() {
char code[6] = "";
for (char ch = 'a'; ch <= 'z'; ++ch) {
int value = ch - 'a'; // a=0, b=1, c=2...
toAB(value, code);
printf("%c -> %d -> %s\n", ch, value, code);
}
return 0;
}
/*
run:
a -> 0 -> AAAAA
b -> 1 -> AAAAB
c -> 2 -> AAABA
d -> 3 -> AAABB
e -> 4 -> AABAA
f -> 5 -> AABAB
g -> 6 -> AABBA
h -> 7 -> AABBB
i -> 8 -> ABAAA
j -> 9 -> ABAAB
k -> 10 -> ABABA
l -> 11 -> ABABB
m -> 12 -> ABBAA
n -> 13 -> ABBAB
o -> 14 -> ABBBA
p -> 15 -> ABBBB
q -> 16 -> BAAAA
r -> 17 -> BAAAB
s -> 18 -> BAABA
t -> 19 -> BAABB
u -> 20 -> BABAA
v -> 21 -> BABAB
w -> 22 -> BABBA
x -> 23 -> BABBB
y -> 24 -> BBAAA
z -> 25 -> BBAAB
*/