बीसीडी अंतर
पूर्णांक 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@#&
एक बाइट बचाता है। सही?