ब्रेनफ * सीके, 98 77
जाहिर है यह जीतने के उद्देश्य के लिए नहीं है, लेकिन अगर यह एक brainfk समाधान नहीं है तो एक प्रतियोगिता क्या होगी
++++[>++++<-]>>,<[->>++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++[->++++++++<]>.[-]>[-<<<+>>>]<<<<]
चूंकि ब्रेनफेक केवल 8 बिट पूर्णांक और कोई नकारात्मक नहीं संभाल सकता है, मुझे लगता है कि यह पूरी तरह से नियमों का पालन नहीं करता है, लेकिन हे मैं इसे जीतने के लिए कभी नहीं था।
यह वास्तव में 16-बिट इनपुट के लिए काम करता है यदि आपका दुभाषिया समर्थन करता है
मैं भी इसे ascii मूल्यों में उत्पादन करने के लिए मिला है
यहाँ एनोटेट कोड है:
++[>++++<-] preload 8 onto cell 1
>>,< input into cell 2
[- iterate over cell 1
>>++< put 2 in cell 3
[->-[>+>>]>[+[-<+>]>+>>]<<<<<] division algorithm: converts {n d} into {0 d_minus_n%d n%d n/d}
>[-]++++++[->++++++++<]> clears cell 4 and puts 48(ascii of 0) into cell 5
.[-] output n%2 and clear it (the bit)
>[-<<<+>>>] bring n/2 into cell 2 (to be used for division in next iteration)
<<<<] end iterate
कम एल्गोरिथ्म (77):
+>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+>+>+>+>+>+>+<<<<<<<<]>[.>]
यह केवल 8 बिट पूर्णांक संभाल सकता है।
एल्गोरिथ्म एक बाइनरी काउंटर का उपयोग करके काम करता है जो वास्तव में बहुत छोटा है (एक वेतन वृद्धि है >[->]++[-<+]-<-जो तब बिट्स को बाहर करता है। मुद्दा यह है कि सभी बिट्स को प्रिंट करना मुश्किल है
अंतिम एल्गोरिथ्म को बाइट्स की कीमत पर किसी भी संख्या में बिट्स फिट करने के लिए अनुकूलित किया जा सकता है। एन बिट पूर्णांक से निपटने में सक्षम होने के लिए, इसे एनकोड करने के लिए 53 + 3 * एन बाइट्स की आवश्यकता होती है।
उदाहरण:
(1 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+<]>[.>]
(2 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+<<]>[.>]
(3 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+>+<<<]>[.>]
etc