ধূসর শামুক , সংখ্যা I / O এর জন্য 1206 বাইট, অ্যানারি আই / ও এর জন্য 149 বাইট
মজার জন্য. প্রথম প্রোগ্রামের রচনা:
- 451 বাইট, সংখ্যাকে বিন্দুতে রূপান্তর করে
- 121 বাইট, মূল ফাংশন (একটি পৃথক সংস্করণ নীচে লেখা আছে)
- 634 বাইট, বিন্দু সংখ্যায় রূপান্তর
সংখ্যার ইনপুট এবং আউটপুট নিন। ইনপুট হয় A
, B
, C
যথাক্রমে। অন্যান্য (কাছাকাছি) O(1)
জবাবের তুলনায় কোডটির জটিলতা রয়েছে O(n)
। তবে প্রচুর সংখ্যার জন্য এটি আপনার স্মৃতি প্রথমে খেয়ে ফেলতে পারে।
কোনও সমাধান না পাওয়া গেলে ঝুলুন।
INPUT p
POP Z r .!
f
POP Z o .
q
POP Z p [p]
GOTO [Z]
0
POP Z n .
GOTO w
1
POP Z n ..
GOTO w
2
POP Z n ...
GOTO w
3
POP Z n ....
GOTO w
4
POP Z n .....
GOTO w
5
POP Z n ......
GOTO w
6
POP Z n .......
GOTO w
7
POP Z n ........
GOTO w
8
POP Z n .........
GOTO w
9
POP Z n ..........
GOTO w
w
POP Z o .[o][o][o][o][o][o][o][o][o][o][n]
GOTO [r] [p]
GOTO q
!
POP Z A .[o]
INPUT p
POP Z r .@
GOTO f
@
POP Z B .[o]
INPUT p
POP Z r .#
GOTO f
#
POP Z C .[o]
POP H N .[B]
U
POP Z A [A]
POP Z B [B]
GOTO D [A]
GOTO $ [B]
GOTO U
$
POP Z A .[A][C]
POP Z H ..[H]
POP Z B .[N]
GOTO U
D
POP Z r .
POP Z M .
POP Z N ...........
POP Z z .[N]
POP Z V .[H]
+
GOTO l[V] [H]
POP Z H [H]
POP Z z [z]
GOTO ( [z]
GOTO +
(
GOTO ) [H]
POP Z z .[N]
POP Z M ..[M]
POP Z V .[H]
GOTO +
)
POP Z r .0[r]
POP Z M ..[M]
POP Z H .[M]
POP Z M .
POP Z V .[H]
POP Z z .[N]
GOTO +
l
POP Z r .0[r]
GOTO -
l.
POP Z r .1[r]
GOTO -
l..
POP Z r .2[r]
GOTO -
l...
POP Z r .3[r]
GOTO -
l....
POP Z r .4[r]
GOTO -
l.....
POP Z r .5[r]
GOTO -
l......
POP Z r .6[r]
GOTO -
l.......
POP Z r .7[r]
GOTO -
l........
POP Z r .8[r]
GOTO -
l.........
POP Z r .9[r]
GOTO -
-
GOTO / [M]
POP Z H .[M]
POP Z M .
POP Z V .[H]
POP Z z .[N]
GOTO +
/
OUTPUT [r]
f
পূর্ণসংখ্যাকে বিন্দুতে রূপান্তর করতে একটি (সম্ভবত) পুনরাবৃত্ত ফাংশন। যুক্তিটি সংরক্ষণ করা হয় [p]
এবং আউটপুট ইন হয় [o]
।
U
একটি ফাংশন টেস্টিং S1>=S2
, এ প্যারামিটার সংরক্ষণকারী B, A
সময় সংরক্ষণ A-B
মধ্যে A
।
কোড থেকে শুরু করা D
হ'ল একটি স্টাবকে সংখ্যায় রূপান্তরিত করে।
অন্তর্নিহিত নীতিটি আমার সি উত্তরের সাথে একই (অসম্ভব সমাধানের জন্য মিথ্যা আউটপুট ছড়িয়ে দেওয়া)।
স্বতন্ত্র সংস্করণ, 149 156 157 167 170 230 বাইটস, কেবল অ্যানারি আই / ও সমর্থন করে
ইনপুট দরকার বিন্দু, যেমন হতে ..........
জন্য 10
।
INPUT A
INPUT B
INPUT C
POP N H .
GOTO U
$
POP N A .[A][C]
POP Z H ..[H]
U
POP Z A [A]
POP Z N ..[N]
GOTO D [A]
GOTO $ .[B] [N]
GOTO U
D
OUTPUT .[H]
U
গণনা করে A=A-B
এবং D
কখন লাফ দেয় A<=0
। অন্যথায় $
নির্ধারণ A+C
করতে A
এবং কল U
।
কোনও সমাধান না পাওয়া গেলে ঝুলুন।
কৌশল: খালি স্ট্রিংটি ব্যাখ্যা করার "সংকলক" এর ক্ষমতার অপব্যবহার করুন। GOTO
শর্তহীন জাম্প করতে বিবৃতিতে আপনি শর্তগুলি ছিন্ন করতে পারেন এবং একই কৌশলটি কাজ করে POP
।
মন্তব্য: আমি এটি আরও 3 টি বাইট দ্বারা গল্ফ করতে পারি তবে এটি করার মাধ্যমে আমার এবং হুইটউইজার্ডের উত্তরটির ঠিক একই যুক্তি থাকতে পারে। ফলাফলটি সম্ভবত সবচেয়ে সংক্ষিপ্ত গ্রেসনেল সমাধান এবং আমি এটি প্রমাণ করার চেষ্টা করছি।