ASCII tablosunu yazdır


28

Görev ASCII tablosunun n karakterlerini göstermektir .

Bir parametreyi (veya argümanı parametre olarak alan bir program, STDIN'e de izin verilir), n parametresini alan, yazdırılacak son karakterin dizinini yazabilirsiniz .

Görev oldukça basittir, örnek olarak Python 2.7’de olası bir uygulama:

(lambda n:map(chr, range(n)))(256)

Dediğim gibi bu basit bir görev. Yani bu kod golf ve en kısa kod kazanır!

DÜZENLE

Bazılarınızın belirttiği gibi, bu kod sonucu yazdırmıyor. Bu sadece bir örnek olarak sorunu açıklamakta zorlanabileceğim bir örnek ;-);

EDIT2

En kısa kod olmasa bile, cevabı herhangi bir programlama dilinde göndermek için çekinmeyin. Belki orada bazı ilginç uygulamalar vardır!

EDIT3

Örnek düzeltildi, böylece sonuç yazdırıldı.


1. Bir fonksiyon olmak zorunda mı? 2. Referans kodunuza göre, n basılmamış ilk karakter olacaktır.
Dennis,

2
Aslında referans kodu hiçbir şey basmaz. Sadece karakterlerin bir listesini verir ve REPL'in sonuç ile istediğini yapmasına izin verir.
Manatwork

1
Birisi lütfen aşağı oylamayı açıklayabilir mi? İngilizcem o kadar iyi değilse özür dilerim. Sorunun içinde net olmayan bir şey varsa, lütfen bana söyle.
oopbase

1
for x in range(input()):print chr(x)Örneğinizi düzenlemek istiyorsanız, aslında karakterleri yazdırır.
FryAmTheEggman

2
nota [i for i in range(n)]oldukça benzerrange(n)
njzk2

Yanıtlar:


19

CJam, 4 bayt

ric,

STDIN'den ( çevrimiçi tercümandaki giriş alanı) okunan tam program .

Bu basitçe , argümanı bir karakter ise, bir karakter dizisi döndüren range(chr(int(input())))gerçeğinden faydalanarak çalışır ,.

Ben dibs'i çağırdım c,(2 bayt), girişin zaten yığında olduğunu varsaymak durumunda izin veriliyor.


Bazı girdiler belirtmeniz gerekiyor mu? Çevrimiçi koşucu sadece kodu kendisi çıkarır.
Manatwork

12
@ manatwork: Sadece bir saniye. Bunları gönderirken acele etmeniz gerekir ...;)
Dennis,

Biraz kafam karıştı. 0'daki (aka 0c) karakter, daha sonra başka bir şeyin yazdırılmasını önler. ric, (iyi çalışıyor gibi görünüyor. Bu kod çalışmaz anlamına geliyor.
kaine

1
@kaine: Internet Explorer, boş sonlandırılmış dizeleri kullanmayan C ++ dilinde yazılmıştır. Göre bu , boş karakterler HTML 5'de ayrıştırma hatası vardır; Tarayıcı, belgeyi processing veya iptal etmek için değiştirmelidir.
Dennis,

4
Yeterince büyük bir sayı girmeniz gerektiğini unutmayın n, çünkü ilk birkaç düzine ASCII karakteri yazdırılamaz karakterlerdir. Eğlenceli gerçek: bu program ayrıca Unicode tablosunu da verir, örneğin n = 9999
Sanchises

25

beyinböceği - 169 146 142 bayt

-[+>+[+<]>+]>+>>,[>,]<[<]<[->>[->]<[<]<]>>>[[<[-<+<+<+>>>]+++++++++[<[-<+>]<<[-<+>>>+<<]<[->+<]>>>>-]]<,<<,>[->>>+<<<]>>>---------->]<-[->.+<]

Sınırlamalar:

  • EOF 0 olmalı
  • 8 bitlik sarma hücreleri gerektirir
  • ^ Nedeniyle, mods girişi 256

Buradaki en kısa cevap değil, ama hey, beyefendi! Bu, basamak sayısını garanti etmeden insan tarafından okunabilir bir girdi gerektirmesi dışında, gerçekten, gerçekten iyi bir beyin avı mücadelesi olacaktı. Girdiyi 3 karakter uzunluğunda yapmak için baştaki sıfır değerine sahip olmam gerekebilirdi, ama bu ne eğlenceli? : D Bu şekilde giriş yapmanın en büyük sorunlarından biri, beyin hücresinin sadece dallanma veya döngü yapısının mevcut hücrenin sıfır olup olmadığını kontrol etmesidir. Girdi sıfır içerdiğinde, kodunuzun almaması gereken dalları almasına neden olabilir. Bu sorunu çözmek için, giriş artı 1'in her basamağını saklıyorum, ardından fazlası mümkün olan son saniyede çıkartıyorum. Bu şekilde, sıfırlarımın nerede olduğunu her zaman biliyorum.

Bunun, girdiyi ayrıştırmak zorunda kalmadan yapılan büyük beyin fırtınası mücadelesi olacağını söyledim. Neden? Peki, sayısal bir girdi almadığımızı farzedelim. Meydan okumanın "Girdi baytı verildiğinde, tüm ASCII karakterlerini bu baytın altına çıkar" olduğunu söyleyeceğiz. İşte cevabım ne olurdu:


brainfuck - 8 bayt

,[->.+<]

Bu oldukça fark! Gerçek program, girişi toplamak için 135 komut kullanır (programın% 95'inden fazlası!), Çünkü bunu bir insan yazıyor. Bir byte olarak numara saklayın ve vermek o bana ve sadece bir tane alır.

(Eğlenceli gerçek: Varsayım programını anladıysanız, tebrikler! Beynin bütünüyle olduğunu anlıyorsunuz. Bütün dilin yalnızca sekiz komutu vardır ve bu program her birini tam olarak bir kez kullanır.)

açıklama

-[+>+[+<]>+]>+               abuse 8 bit wrapping to put 47 in cell 4

>>,[>,]                      starting in cell 6; get each character of input

<[<]<[->>[->]<[<]<]          subtract the value of cell 4 from each input character
                             '0' has an ascii value of 47 so subtracting 47 from each
                             digit gives you that digit's value plus 1

>>>[                         if the number is in more than one cell
                             (when the program first starts this means "if the input has
                             more than one digit")

[<[-<+<+<+>>>]               copy first input cell to 3 new cells

+++++++++[<[-<+>]<<          do some fancy addition magic to multiply that value by 10
[-<+>>>+<<]<[->+<]>>>>-]]

<,<<,>                       clean up a bit (abusing comma to set cells to 0)

[->>>+<<<]>>>                add the value to the next cell of input

----------                   because we multiplied (the digit plus 1) by 10; the answer
                             is 10 too high; so subtract 10

>]                           if the input is still in multiple cells; do the song and
                             dance again (multiply by 10; add to next cell; subtract 10)

<-                           we never got a chance to fix the final digit; so it's still 1
                             too high

               ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               ;;         we have now finished processing input         ;;
               ;;     the tape is empty except for the current cell     ;;
               ;;  the current cell contains the number that was input  ;;
               ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[                            while the cell containing input != 0

-                            subtract 1 from it

>.+                          go a cell to the right; output that cell; then add 1

<]                           repeat

Güzel! Çaba için kesinlikle +1 :-)
oopbase

1
Çıktı kısmındaki bazı baytları kaydedebilirsiniz: >[-]<[->.+<]Geçerli hücrenin yanındaki hücreyi 0 olarak ayarlayın, ardından hücrenin yanındaki hücresini arttırırken ve aynı anda değeri yazdırırken geçerli hücreyi sayın.
Shujal

@shu Bu mükemmel bir nokta! Bunu hiç düşünmedim. Daha kısa olmanın yanı sıra, büyük girdilerde boğulma problemimi çözdü ve muhtemelen daha hızlı! Thanks :)
undergroundmonorail

Evet, şimdi çok, çok daha hızlı. Ayrıca >[-]<parçaya ihtiyacım yoktu çünkü zaten boş bir hücrenin yanındaydım. :)
undergroundmonorail


12

Pyth , 4 bayt

VQCN

Temel olarak Python 3 programının bir çevirisi:

for N in range(eval(input())):print(chr(N))

11

Befunge 93 - 23 21

&> :#v_,>:#,_@
 ^-1:<

Befunge 93 - 15 13 (Ingo Bürk tarafından)

Bu, listeyi tersten yazdırır, ancak OP yalnızca ilk nkarakterleri yazdırmamız gerektiğini, sıralı olması gerekmediğini söyledi.

&>::>v
@^-1,_

Befunge98'e geçmeden golf oynamak mümkün olmayabilir (";" operatörü için, bkz. @ Kasran'ın cevabı ).

Burada dene:


Umarım buradan bir satır içi tercüman kullanmamın sakıncası yoktur :)
Ingo Bürk

Soru, herhangi bir sırayla basmamız gerektiğini belirtmiyor, bu yüzden bu beş bayt daha kısa: &> #- #1:# :#,_@(sadece tersten yazdırıyor)
Ingo Bürk

Toplam 15 bayt daha atmıştım. Yeni satırlardan dolayı yazınızı düzenleyeceğim.
Ingo Bürk

Ekstra golf iyi oynandı :) Satır içi tercüman gelince, bir tane olduğunu bilmiyordum. Harika, teşekkürler :)
karhell

Tercüman bağlı mücadeleden yeni. Sadece cevabını gördüğümde kullanacağımı düşündüm. :)
Ingo Bürk

8

Java, 151 128 77 62 56 bayt

İlk önce kod-golf oynamaya çalışın.

void f(int n){for(char i=0;++i<=n;System.out.print(i));}

Kullanımı:

import java.util.Scanner;
class A {

    public static void main(String[] a) {
        int num = new Scanner(System.in).nextInt();
        new A().f(num);
    }

    void f(int n) {
        for (char i = 0; ++i <= n; System.out.print(i));
    }
}

Ciddi bayt azaltma için @Shujal, @flawr, @Ingo Bürk ve @Loovjo'ya teşekkürler.


1
Tarayıcıyı açarken int int i,n=new Scanner(...değerini bildirerek ve döngüyü olarak değiştirerek bazı karakterleri kaydedebilirsiniz for(;++i<n;). Ayrıca, çağırmanıza gerek yok Character.toString. System.out komutunu sadece bir char değeriyle besleyebilirsiniz ve bu değeri mutlu bir şekilde verir.
Shujal,

1
Zorluk, agirdi olarak kullanımınıza izin verir . Ve bence forartış for(;++i<n;System.out.print((char)i));noktasını döngü gövdesi olarak kötüye kullanarak döngüyü kısaltabilirsiniz : (ancak başlangıç ​​veya bitiş değerini + - 1
oranında

1
Bir fonksiyon yazmanıza izin verilir, bu yüzden bütün bir sınıfa ve her şeye gerek yoktur.
Ingo Bürk

1
@RodolfoDias Emin misiniz? Açıkçası, ++i<n+1eşdeğer olmalıdır ++i<=n. Not =Ancak orada! Sadece bir bayt kaydeder. Benim için çalışıyor.
Ingo Bürk

1
Bu yüzden void f(int n){int i=0;for(;++i<=n;System.out.print((char)i));}62 bayt olan aşağı iniyoruz. En azından şimdi golf oynamak için daha fazla göremiyorum. :)
Ingo Bürk

6

APL, 5

⎕UCS⍳

Örnek kullanım:

⎕UCS⍳256

1
Bir dfn yapmak zorunda değilsin. Sadece ⎕UCS⍳ iyi çalışırdı. Yani 5 karakter
Moris Zucca

1
127 üzerinden kod noktalarını desteklemeniz gerekmez. Sadece ⎕ ⎕AV iyi sonuç verirdi. Yani 4 karakter
Adám

6

JavaScript, ES6 - 52 58 56 53 44 42 bayt

n=>String.fromCharCode(...Array(n).keys())

Bunu Firefox konsoluna yapıştırın. Olarak çalıştır f(NUM).

Bunu daha uzun yapmak zorunda kaldım çünkü ilk girdiyi uygun şekilde kabul etmedi.

Aşağı 3, teşekkürler edc65! Döndürme sayesinde 44'e kadar!


1
Bu gerçekten ne parametre ne de girdiyi işlemez.
Manatwork

Sadece 70'i farklı bir sayıya çevirin; giriş budur.
Scimonster

Tamam, 6 bayt pahasına girdi almak için güncellendi.
Scimonster

3
-2: f = n => [... Dizi (n)]. Harita ((v, i) => String.fromCharCode (i))
edc65

2
44 karakter! f=n=>String.fromCharCode(...Array(n).keys())
Döner

6

Haskell, 17 23 bayt

flip take['\0'..]

İthalat olmadan daha iyisini yapmanın mümkün olup olmadığından emin değilim.

Düzenle

İlk çözümüm aslında sonucu yazdırmadı , bu yüzden bunun için 6 karakter daha verin:

print.flip take['\0'..]

Ayrıca, daha kısa değil (baskı ile 25 karakter, 19 olmadan), ancak ilginç bir alternatif yaklaşım (buna rağmen 'Data.List' gerektirir):

print.((inits['\0'..])!!)

Bu aslında sonucu yazdırmaz.
nyuszika7h

@ nyuszika7h şimdi yapıyor
John Dvorak

(`take`['\0'..])bir bayt kaydeder.
Laikoni

4

Bash + BSD ortak yardımcı programları, 9 bayt

jot -c $1

GNU dc, 20 bayt

?sc_1[1+dPdlc>m]dsmx

4

C 31 30 28 27

k;f(n){putch(k++)<n&&f(n);}

Putch standart olmadığından, tam uyumlu sürüm:

k;f(n){putchar(k++)<n&&f(n);}

Ana'dan aranmalı:

main(){f(255);}

EDIT: putchar getiri değerinden yararlanarak geliştirilmiştir
EDIT 2: Özyineleme ile başka bir karakter tarafından azaltılmıştır


1
Putch standart olmayan bir fonksiyondur. Ayrıca, bu cevabın neden reddedildiğini sorabilir miyim?
Dublör

@Stuntddude putchar kullanan alternatif bir sürüm ekleyeceğim ve bunun neden indirildiğine dair hiçbir fikrim yok. Sonuçta, kısa olanlardan biridir.
takra

4

Perl, 17 bayt

say chr for 0..$_

1
Çok fazla parantez var. print chr for 0..$ARGV[0]
Manatwork

Haklısın!
Uzun zamandır

1
2 bayt kaydetmek shiftyerine kullanabilirsiniz $ARGV[0].
nyuszika7h

Karakterleri farklı satırlara yazdırmanıza izin verilirse, kullanabilirsiniz say. Ayrıca, karakter sayısını bir liner ile yaparsanız daha kısa olur -n. karakter echo "90" | perl -nE'say chr for 0..$_'olarak sayılır 18. 17için say chr for 0..$_artı 1için n.
hmatt1

Haklısın. Fakat sayher perl sürümü ile çalışmaz.
Demnogonis

3

CJam, 3

,:c

Argümanı en üst yığın elemanı olarak kabul ettim.

Örnek kullanım:

256,:c

ri,:c


3

awk - 27

{while(i<$0)printf"%c",i++}

Stdin parametresini vermek için şöyle çalıştırın:

awk '{while(i<$0)printf"%c",i++}' <<<96

Sadece eğlence için: Kesin ile başlayan "düşün pozitif versiyon" yes:

yes|head -96|awk '{printf"%c",NR-1}'

NR-1yazdırmak (char)0için gereklidir NR==1. :-(

Ve neden bir noemir almıyoruz ? Bu biraz kaba!


1
alias no='yes no'
nyuszika7h

... ama sonra o takma ad tanımının karakterlerini de saymak zorunda kalacağım ... :-(

3

J - 5 bayt

{.&a.

{.Başkanı, a.Alfabesidir (tüm karakterlerin listesi) ve &Bunları bağlar, şöyle bir monadik fiil üretir:

{.&a. 100 NB. first 100 characters

Not : Bunun etkileşimli bir şekilde çalışmadığı görülüyor: Jconsole ve jQt, bazı kontrol karakterleri yerine kutu karakterleri çıkaran bir çeviri ayarlamış görünüyor. Bir komut dosyasında veya komut satırından, yine de çalışır:

  ijconsole <<< '127 {. a.' | hd

Alfabenin tam olarak ASCII olmadığına dikkat edin.
FUZxxl

Kadar {.&a. 127, değil mi?
jpjacobs

Hayır, çünkü J bazı kontrol karakterlerinin yerine kutu çizim karakterlerine sahiptir.
FUZxxl

Aslında, bunu bir dosyaya yazmak ve onu hex görüntüleyiciyle incelemek, J'nin doğru değerleri verdiğini söyler (0x00 0x01, ...). sadece J yorumlayıcısı / IDE bu değerleri kontrol karakterleri yerine kutu çizen karakterler olarak yorumluyor. Tam olarak kullanarak charveya eşdeğerleri kullanan diğer tüm dillerle aynıdır .
jpjacobs

Bu garip çünkü UNIX kutumda test ettim ve kod noktalarının bazıları için gerçekten Unicode karakterleri çıktı.
FUZxxl

3

gs2, 2 bayt

V.

Bu rekabet olmalı, bence! Gs2'nin ilk günlerinde bile işe yarayabilirdi. Burada dene.


1
Bu sürümle başarılı bir şekilde test edildi, bu da mücadeleyi bir ay öncesine götürüyor.
Dennis,

3

Brainfuck, 44 bayt

,
[
  <[>++++++++++<-]
  -[>-<-----]
  >+++>,
]
<[>.+<-]

İzleyen bir yeni satır olmadan ondalık bir dize bekler.

Çevrimiçi deneyin.

[0, max_cell_size]Beyin hecesindeki aralıktaki tamsayıları okumak zor değildir. Kendi başınıza temiz bir yöntem icat etmenizi tavsiye ediyorum. Bunun başlangıç ​​seviyesi bir egzersiz olduğunu düşünüyorum. (Bir hücrenin sayısal değerini yazdırmanın tersine işlemi daha çok söz konusudur ve orta seviye bir görev olarak kabul edilebilir.)

2568 bitlik uygulamalarda kullanılabilecek 58 baytlık bir sürüm :

,
[
  <[<+> >++++++++++<-]
  -[>-<-----]
  >+++>,
]
<[>]
-<<[>.]
>[>+.<-]


Bunu neden düşünmedim ??? Bu ustaca !!!
FinW

Gelecekteki cevaplarda kullanmak için bunu ödünç alabilir miyim?
FinW

1
@ FinW Bu meta yazı hakkında bilmediğiniz tahmin ediyorum .
Mitch Schwartz

2

Golf Bülteni - 5

@Dennis sayesinde

~,''+

1
~,""+kısaltılmış ve doğru bir şekilde STDIN’den giriş yapıyor.
Dennis,

@Dennis Bu benim için herhangi bir çıktı üretmez ...
Beta Decay

1
Çevrimiçi tercümanı kullanıyor musunuz? STDIN'den girişi doğru şekilde simüle etmek için, örneğin ;"65"STDIN'den gelen giriş her zaman bir dize olacağı için kullanmanız gerekir.
Dennis,

1
@Dennis Oh şimdi çalışıyor!
Beta Çürüğü

2

Lua - 43 41 Bayt

for i=1,arg[1]do print(string.char(i))end

Bunu bir bayt ile kısaltabilirsiniza=""for i=1,arg[1]do print(a.char(i))end
Digital Veer

Bunu 2 byte kısaltabilirsinfor i=1,arg[1]do print(("").char(i))end
manatwork

2

Befunge 98, 22

&:00pv>0gk,@
0::-1<^j`

Bu kadar uzun olması üzücü.

&:00p        ; gets numerical input, stores a copy at cell (0,0)               ;
     v       ; IP goes down                                                    ;

     <       ; IP goes left, so I execute 1-::0`j^                             ;
 ::-1        ; (1-::) subtract one from our number and duplicate it twice      ;
0       `    ; (0`) compare the number with 0, push 1 if greater else 0        ;
     <^j     ; if the result was 0, go up, otherwise continue going left       ;

      >0gk,  ; get the value at cell (0,0), print that many numbers from stack ;
           @ ; terminate program                                               ;

2

Python 3.4 - 36 bayt / 43 bayt

print(*map(chr,range(int(input()))))
print(*map(chr,range(int(input()))),sep='')

255 giriş ()

Bu nasıl çalışır:

  1. Menzil üst sınırını alın
  2. Tablonun bir aralığını oluşturun.
  3. Aralığı chr işleviyle eşleştirin (int alır, ascii döndürür).
  4. Splat argüman genişletme ile haritayı tüketin (sayı -> karakter -> baskı!

İkincisi, sadece 7 bayt karşılığında her bir karakteri ayıran boşluğu kaldırır.


Bunu bir lambda haline getirebilirsiniz, soru bunu belirtir ve Python 2'de mapbir liste döndürür, böylece sadece yapabilirsinizf=lambda i:map(chr,range(i))
Justin

Bu doğru ve ilk çözümüm benzerdi ancak hemen bir çıktı alabilmek için bir lambda kullanmak istemedim. Harita bu şekilde daha pitonik olsa bile, yineleyici yerine bir liste döndürme eğilimini korumasını isterdim.
Full Metal

2

Pascal 87

program _;var c:char;n:byte;begin n:=0;readln(n);for c:=chr(0)to chr(n)do write(c);end.

Pascal 73

program _;var c,n:byte;begin readln(n);for c:=0to n do write(chr(c));end.

Http://www.onlinecompiler.net/pascal adresinden derler ve çalışır


1
FreePascal (ve doğru hatırlıyorsam, Turbo Pascal da) sadece bu karakterlerden 60 var c,n:byte;begin read(n);for c:=0to n do write(chr(c))end.
tanesine

Oldukça muhtemel, sadece Delphi kullandım. Ama birileri bunu unvan dışında düzenledi.
Mark K Cowan

2

x86 ASM (Linux) (siz derlemediğiniz sürece birçok bayt)

Bir işlev olarak yazılmış, parametrenin AX'te geçtiğini varsayar (okuma sistemi için sayıyı unuturum) Ayrıca [SP] veya BX'i de korumaz.

test ax,ax
jz @Done
mov [sp],ax
@Loop:
mov ax,4
mov bx,1
mov cx,sp
mov dx,1
int 0x80
sub [sp],1  ; Can I do this?  Or do I need to load/sub/store separately?
jnz @Loop
@Done:
ret

2
(Oraya bir F00F istisnası koymalıydım, zaten kimsenin idare edeceği gibi değil)
Mark K Cowan

7
Bunu yönetecektim. Bunu şimdi çalıştırmayacağım.
Aearnus


2

Ruby, 23

f=->n{puts *?\0..n.chr}

açıklama

  • Giriş bir lambda argümanı olarak alınır. Bir Tamsayı bekliyor.
  • "Yıkıcı işleç" ( *) #to_ary, her karakteri kendi satırına yazdırmak için Range'e çağrılır .

2

Julia: 20 karakter (REPL)

Bu, sorunun örneğine yakın: sadece karakterleri üretir ve REPL'in onlarla istediğini yapmasına izin ver.

f(n)=map(char,[0:n])

Julia: 33 karakter

Her karakteri ayrı bir satıra yazdırır.

print(map(char,[0:int(ARGS[1])]))

2

M (MUMPS) - 21

R n F i=1:1:n W $C(i)

Genişletilmiş biçimde: READ n FOR i=1:1:n WRITE $CHAR(i)


2

T-SQL: 68 63

Bir yazdırma döngüsü olarak

DECLARE @i INT=64,@ INT=0A:PRINT CHAR(@)SET @+=1IF @<=@i GOTO A

T-SQL: 95 86

Sorgu olarak

DECLARE @ INT=64SELECT TOP(@+1)CHAR(ROW_NUMBER()OVER(ORDER BY 0/0)-1)FROM sys.messages

Düzenleme: Muqo tarafından belirtilen değişiklikler ve düzeltmeler yapıldı. Teşekkürler. @ T-clausen.dk tarafından önerilen düzeltmeler ve golf


Döngü için, WHILE'ı bir GOTOetiketine dönüştüren 5 ya da öylesine karakter kaydedebilirsiniz . Sorgu için, msdb.sys.objectsyeterli nesneyi garanti altına almak için belki belirtin . Ayrıca, CHAR (0) çıkışı vermez. Ancak, teselli olarak yapabilirsiniz ORDER BY @.
Muqo

İkinci cevap geçersiz. Bu şekilde yeniden yazabilir ve 9 karakterlik golf oynayabilirsiniz: DECLARE @ INT = 64SELECT TOP (@ + 1) CHAR (ROW_NUMBER () AŞIRI (0/0 SİPARİŞLE) -1) sys.messages FROM
t-clausen.dk

@ t-clausen.dk nasıl geçmesine izin verdiğimden emin değilim. Bunun için teşekkürler.
MickyT

2

BrainFuck - 140 112 Bayt

,>,>,>-[>+<-----]>---[<+>-]<[<<<->->->-]<[>+<-]<[>>++++++++++<<-]<[>>>>++++++++++[<++++++++++>-]<<<<-]>>>[>.+<-]

Burada deneyin!

Değiştirerek 28 bayt Kaydedilen [<<<->>>->+<]>[<<<->>>->+<]>[<<<->>>-]için [<<<->->->-].

Bu ne yapar

,>,>,>                                                              Takes three inputs
                                                                    in three separate cells

-[>+<-----]>---[<+>-]<[<<<->->->-]<                                 Takes 48 off of each to
                                                                    convert them to decimal

[>+<-]<[>>++++++++++<<-]<[>>>>++++++++++[<++++++++++>-]<<<<-]>>>    Combines them into a
                                                                    three digit number by
                                                                    multiplying the first
                                                                    by 100, the second by
                                                                    10 and then adding all
                                                                    three

[>.+<-]                                                             Repeatedly prints the
                                                                    value of the adjacent
                                                                    cell and then adds one
                                                                    to it until it reaches
                                                                    the input value.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.