BCD差异
给定一个整数n,通过将每个十进制数字替换为其4位二进制表示形式,将其转换为BCD(二进制编码的十进制)
234 -> 0 0 1 0 0 0 1 1 0 1 0 0
然后旋转二进制数字列表,以找到最大和最小的数字,该列表可以表示该数字而无需其他重新排列。
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)
将这些数字转换回十进制,将位列表视为常规二进制,然后从最大值中减去最小值:
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
输出是找到的最大数与最小数之差。
测试用例:
234 -> 3195
1234 -> 52155
12 -> 135
975831 -> 14996295
4390742 -> 235954919
9752348061 -> 1002931578825
Max@#-Min@#&
保存一个字节。对?