Brainfuck, 240 karakter
,
>++
+++++
+[-<---
--->],[>+
+++++++[-<-
----->]<<[->+
+++++++++<]>>]<
[->+>+>>>>>>>+<<<
<<<<<<]>>>>++++++++
[-<++++>]>++++++[-<++
+++++>]+>>>++[-<+++++>]
<<<<<<[-[>.<-]<[-<+>>+<]<
[->+<]>>>>>[-<.>>+<]>[-<+>]
>.<<++<<<-<->]>>>>>>>-[-<<<<<
<.>>>
>>>]<
<<<<.
Henüz yapılmadı. Çalışır, ancak yalnızca tek basamaklı sayılarla.
EDIT: Tamam! 0'ı EOF olarak kullanan tercümanlar için çalışır. NOTE
-1 olanlar için yorumlanmış kaynaktaki s'e bakınız .
Tekrar EDIT: Brainfuck komut satırı argümanlarını okumak için standart bir yöntemden yoksundur, bunun yerine stdin (standart girdi) kullandım. Tabii ki ASCII.
Üçüncü kez DÜZENLE: Ah canım, .
kod yoğunlaştırırken karakterleri çıkardı (çıkış) görünüyor . Sabit...
İşte ana döngünün temel bellek yönetimi. Karakter sayısını 30 ya da daha fazla azaltmak için yoğun olarak optimize edilebildiğinden eminim.
- Geçici
- Sayacın kopyası
- Sayaç (0'a kadar sayılır)
- Boşluk karakteri (ondalık 32)
- Yıldız karakteri (ondalık 42)
- Geçerli satırdaki yıldız sayısı (1 + 2 * sayaç)
- Geçici
- Yeni çizgi karakter
- Geçici?
- Toplam satır sayısı (yani giriş değeri; gövdeyi yazdırırken en sonuna kadar saklanır)
Yoğunlaştırılmış versiyon:
,>++++++++[-<------>],[>++++++++[-<------>]<<[->++++++++++<]>>]<[->+>+>>>>>>>+<<<<<<<<<]>>>>++++++++[-<++++>]>++++++[-<+++++++>]+>>>++[-<+++++>]<<<<<<[-[>.<-]<[-<+>>+<]<[->+<]>>>>>[-<.>>+<]>[-<+>]>.<<++<<<-<->]>>>>>>>-[-<<<<<<.>>>>>>]<<<<<.
Ve güzel versiyon:
ASCII to number
,>
++++++++[-<------>] = 48 ('0')
Second digit (may be NULL)
,
NOTE: Add plus sign here if your interpreter uses negative one for EOF
[ NOTE: Then add minus sign here
>++++++++[-<------>]
<<[->++++++++++<]>> Add first digit by tens
]
Duplicate number
<[->+>+>>>>>>>+<<<<<<<<<]>>
Space char
>>++++++++[-<++++>]
Asterisk char
>++++++[-<+++++++>]
Star count
+
New line char
>>>++[-<+++++>]<<<
<<<
Main loop
[
Print leading spaces
-[>.<-]
Undo delete
<[-<+>>+<]
<[->+<]
>>
Print stars
>>>[-<.>>+<]
Add stars and print new line
>[-<+>]
>.<
<++
<<<
-<->
End main loop
]
Print the trunk
>>>>>>>
-[-<<<<<<.>>>>>>]
<<<<<.
Merry Christmas =)
c=:[:((\:i.@#),}.)"1[:$&'*'"0[:>:0,~i.