Różnica BCD
Biorąc pod uwagę liczbę całkowitą n, przekonwertuj ją na BCD ( dziesiętny kodowany binarnie ), zastępując każdą cyfrę dziesiętną jej 4-cyfrową reprezentacją binarną
234 -> 0 0 1 0 0 0 1 1 0 1 0 0
Następnie obróć listę cyfr binarnych, aby znaleźć największe i najmniejsze liczby, reprezentowane przez tę listę bez innych zmian.
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)
Przekształć te liczby z powrotem na dziesiętne, traktując listę bitów jako zwykłą wartość binarną i odejmij najmniejszą od największej:
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
Wynik jest różnicą największych i najmniejszych znalezionych liczb.
Przypadki testowe:
234 -> 3195
1234 -> 52155
12 -> 135
975831 -> 14996295
4390742 -> 235954919
9752348061 -> 1002931578825
Max@#-Min@#&
zapisuje bajt. dobrze?