Differenza BCD
Dato un numero intero n, convertilo in BCD ( decimale con codice binario ) sostituendo ogni cifra decimale con la sua rappresentazione binaria a 4 cifre
234 -> 0 0 1 0 0 0 1 1 0 1 0 0
Quindi ruotare l'elenco di cifre binarie per trovare i numeri più grandi e più piccoli, rappresentabili da questo elenco senza altri riarrangiamenti.
max: 1 1 0 1 0 0 0 0 1 0 0 0 (the entire list rotated left 6 times)
min: 0 0 0 0 1 0 0 0 1 1 0 1 (the entire list rotated right 2 times)
Converti questi numeri in decimali, trattando l'elenco di bit come binario normale e sottraendo il più piccolo dal più grande:
1 1 0 1 0 0 0 0 1 0 0 0 -> 3336
0 0 0 0 1 0 0 0 1 1 0 1 -> 141
3336 - 141 -> 3195
L'output è la differenza tra i numeri più grandi e quelli più piccoli trovati.
Casi test:
234 -> 3195
1234 -> 52155
12 -> 135
975831 -> 14996295
4390742 -> 235954919
9752348061 -> 1002931578825
Max@#-Min@#&
salva un byte. giusto?