ব্রেইনফ * সি কে, 98 77
স্পষ্টতই এটি জয়ের উদ্দেশ্য নয়, তবে এর একটি ব্রেইনফেক সমাধান না থাকলে একটি প্রতিযোগিতা কী হবে
++++[>++++<-]>>,<[->>++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++[->++++++++<]>.[-]>[-<<<+>>>]<<<<]
যেহেতু ব্রেইনফেক কেবল 8 বিট পূর্ণসংখ্যাগুলি পরিচালনা করতে পারে এবং কোনও নেতিবাচক হিসাবে আমি অনুমান করি যে এটি নিয়মগুলি পুরোপুরি মেনে চলে না তবে আরে আমি এটিতে জিততে কখনই ছিলাম না।
আপনার দোভাষী যদি সমর্থন করে তবে এটি প্রকৃতপক্ষে 16-বিট ইনপুটটির জন্য কাজ করে
এমনকি আমি এটি অসি মানগুলিতে আউটপুট পেয়েছি
এখানে বর্ণিত কোডটি দেওয়া হয়েছে:
++[>++++<-] 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 বিট ইন্টিজারগুলি পরিচালনা করতে পারে।
অ্যালগরিদম একটি বাইনারি কাউন্টার ব্যবহার করে কাজ করে যা আসলে খুব সংক্ষিপ্ত (এক বর্ধিততা >[->]++[-<+]-<-
যা পরে বিটগুলি আউট দেয় The ইস্যুটি হ'ল সমস্ত বিট মুদ্রণ করা বেশ কঠিন
এই শেষ অ্যালগরিদমটি বাইটের ব্যয়ে যে কোনও সংখ্যা বিট মাপসই করা যেতে পারে। এন বিট পূর্ণসংখ্যার সাথে ডিল করতে সক্ষম হতে, এটি এনকোড করার জন্য 53 + 3 * এন বাইট প্রয়োজন।
উদাহরণ:
(1 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+<]>[.>]
(2 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+<<]>[.>]
(3 bit) +>,>-<[>>[->]++[-<+]-<-]++++++++[->++++++<]>+[->+>+>+<<<]>[.>]
etc