1'den 10'a kadar sayıları yazdır


42

Bu çok basit bir zorluk olabilir, ancak kod-golf üzerinde henüz yapılmamasına şaşırdım:

Tüm çıkışları, standart çıktıya göre artan sırada 1'den 10'a kadar yazdırın.

Çıkış biçiminiz, diliniz ne destekliyorsa olabilir. Bu, rasgele ayırıcılar (virgüller, noktalı virgüller, yeni satırlar, bunların kombinasyonları vb., Ancak rakamsız) ve önekleri ve sonekleri (gibi [...]) içerir. Ancak, 1 ile 10 arasında başka bir sayı veremezsiniz. Programınız herhangi bir giriş yapamaz. Standart boşluklara izin verilmez.

Bu , bayt cinsinden en kısa cevap!

Liderler Sıralaması


10
Related (duplicate?)
Luis Mendo,

17
Tek değişiklik tek bir parametreyi zorlaştırıyorsa, bu " önemsiz değişim " başlığı altında toplanır ve bu sitenin standartlarına göre hala bir dupe olarak sayılır.
Peter Taylor

10
@PeterTaylor Diğer mücadelede tamsayı limitleri ile büyük bir sorun var. 64 bit tamsayılı olmayan her TC dilinin belirtilme şekli, bunları uygulamalıdır. (Ve bu oldukça fazla dili etkiler.)
Martin Ender

17
@xnor Açıkçası, diğer mücadeleyi bunun bir kopyası olarak kapatmayı tercih ederim. Gereksinim hemen hemen onu mahveder.
Dennis,

9
(Şu anda) 71 cevabın her birinin tabanının ondalık olması gerektiği varsayımına inanamıyorum ...
Skippy le Grand Gourou

Yanıtlar:


68

C, 36 bayt

main(i){while(printf("%d ",i++)<3);}

Bu işe yarar, çünkü döngü ilk 2 haneli sayıdan sonra sona erer.


1
Parametreleri fonksiyona aktarabilmekten söz edilmez.
Ash Burlaczenko,

10
@ AshBurlaczenko Ne hakkında konuşuyorsun? Bu, golf oynamakta standart bir tekniktir ve 1'e bir int başlatır. Herhangi bir komut satırı argümanını iletmeniz gerekmez. Aslında, bunu yapmak programın yanlış çıktı üretmesine neden olacaktır.
xsot

6
@AshBurlaczenko Mutabakata göre , programların gereksiz girdi ile çağrılmayacağını varsayabileceğini kabul ettik (bu durumda, programın ötesinde ek komut satırı argümanı yok). Bu i, bu program çalıştırıldığında burada her zaman 1 olacağı anlamına gelir . Başka bir şey mi demek istedin?
FryAmTheEggman

2
Maalesef, C yazmadım ancak varsayılan değerin, kullandığım her dilde olduğu gibi 0 olacağını varsaydım.
Ash Burlaczenko,

16
@AshBurlaczenko C'de, main'in ilk argümanı komut satırı argümanlarının sayısıdır (çalıştırılabilir adın kendisi dahil). Hiçbir argüman iletilmediğinden, bu sayı 1'dir. Ana argümanın ikinci argümanı komut satırı argümanlarının asıl listesidir, ancak bu argüman bu programda yoksayılır.
Chris Bouchard,

43

HTML, 44 bayt

<ol><li><li><li><li><li><li><li><li><li><li>

Bu, çıktıyı kodlamaktan daha uzun, ancak bu şekilde daha ilginç. <ol>On boş liste elemanı ( <li>) ile sıralı bir liste ( ) oluşturur . Varsayılan olarak sıralı listeler, 1 ve bir nokta ile başlayan ondalık sayılarla sınırlandırılır.

HTML5 kapatılmamış etiketlerle ilgili çok bağışlayıcıdır, bu nedenle lietiketleri dolaylı olarak kapatır .


4
HTML5'in affedilmesini kötüye kullanmak için +1 (?).
HyperNeutrino 17:16

1
Soğuk kanlı. Onu seviyorum.
ricdesi,

Aslında, NinjaBearMonkey ve @HyperNeutrino, bu başlı başına “affetme” değildir; HTML5, hangi etiketlerin kapatılmamasına izin verildiği konusunda oldukça açık. Sadece listeler ve liste öğelerinin ikisidir.
KRyan

41

Bash, 12 karakter

echo {1..10}

Örnek çalışma:

bash-4.3$ echo {1..10}
1 2 3 4 5 6 7 8 9 10

Bash + coreutils, 10 karakter

(Sadece komik olmaya ve ': No such file or directory↵ls: cannot access 'ayırıcı olarak kullanmaya çalışıyorum .)

ls {1..10}

Örnek çalışma:

bash-4.3$ ls {1..10}
ls: cannot access '1': No such file or directory
ls: cannot access '2': No such file or directory
ls: cannot access '3': No such file or directory
ls: cannot access '4': No such file or directory
ls: cannot access '5': No such file or directory
ls: cannot access '6': No such file or directory
ls: cannot access '7': No such file or directory
ls: cannot access '8': No such file or directory
ls: cannot access '9': No such file or directory
ls: cannot access '10': No such file or directory

Bash + coreutils, 6 karakter

(Sadece sıkıcı olmaya çalışıyorum.

seq 10

Örnek çalışma:

bash-4.3$ seq 10
1
2
3
4
5
6
7
8
9
10

6
Sonuncusu sadece sekans / coreutils, bash dahil değil.
hyde

1
@hyde: Bash olmadan sekans çağrısı yapmak mümkün olmazdı, değil mi?
Mega Man

Vizyonumda, eğer dışarı çıkarsak bash, o seqzaman tercüman olur. Fakat 10geçerli bir program “seq” dilinde midir?
Manatwork

Bunu asla konsolunuzda denemeyin: echo {1..1000000000} Merak ediyorsanız, kendi sorumluluğunuzdadır.
Brain90

@ Brain90, zavallı 8Gb RAM makinemde tehlike yok. ;) “Bash: ayraç genişletme: 1000000000 öğelerine bellek ayıramadı”. En azından bash4.3.46 ile.
Manatwork

24

Jöle, 2 bayt

⁵R

açıklama

⁵  Return the fifth command line argument or 10
 R Range
   Implicit output

7
⁵R, iki bayt
Luis Mendo

13
Neden Dünya'da birileri bir komutun beşinci argümanı veya 10 tamsayısını döndürdüğü bir dil icat edecekti? ..
Andreï Kostyrka 14:16

14
@ AndreïKostyrka Çünkü Dennis
TuxCrafting 14:16

1
Sadece bir bayt olan bir kodlama var mı ? UTF-8’de 3 bayt olduğundan, programın uzunluğu 4 bayt olmalıdır.
Radovan Garabík

2
@ RadovanGarabík Jelly kendi kod sayfasını kullanıyor
TuxCrafting

20

Brainfuck, 58 bayt

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

Çevrimiçi deneyin!


1
Beni yen ve aynı zamanda daha kısa, aynı numarayı kullandığımızı sanmadığım için benimkini gönderecek. Benim +1 :) var
Katenkyo

67 byte ile ++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
yakındım


16

LOLCODE, 79 bayt

IM IN YR l UPPIN YR v TIL BOTH SAEM v AN 10
VISIBLE SUM OF v AN 1
IM OUTTA YR l

Bu kod, kullandığınız derleyiciye bağlı olarak biraz değişiklik yapmanız gerekebilir. Bazıları HAI / KTHXBYE eklemenizi, bazıları değişkeni vaktinden önce bildirmenizi istiyor. Döngü adınız hiç kullanılmamış olsa bile, bir derleyici döngü adınız iki karakterden kısasa kırılır.


15

CJam, 6 5 bayt

A,:)`

Luis Mendo sayesinde 1 bayt kurtarıldı

Çıktı: [1 2 3 4 5 6 7 8 9 10]

Açıklama:

A,      e# Push a list from 0 to 9.
  :)    e# Increment all values.
    `   e# Stringify the list.

Çevrimiçi deneyin!


3
Gülen yüzünü seviyorum. (Açıklamanızda bir hata yok mu: A, 0'dan 9'a kadar bir liste oluşturur)
KarlKastor

14

R, 4 bayt

2:10

":" Muhtemelen en çok kullanılan R komutlarından biridir. Barranka tarafından yapılan yorumlarda yorum.


2
Bir dize yazdırmayı gerektirirlerse, vektör döndürmeden, düşünün cat(1:10).
Andreï Kostyrka,

Önde gelen bir boşluk var mı?
Clashsoft

9
Çıktı olduğu göz önüne alındığında [1] 1 2 3 4 5 6 7 8 9 10, belki daha iyi olurdu 2:10, ki çıktı olacak[1] 2 3 4 5 6 7 8 9 10
Barranka

@Clashsoft, bu bir hataydı - teşekkür ederim. Ve evet, Barranka, iyi nokta - oy verildi.
Forgottenscience,

13

Ruby, 8 bayt

Yeni satırlarla ayrılmış.

p *1..10

* Yeni satırlarla ayrılmış.
David Conrad,

Bunu yapabilirsin?
dkudriavtsev

@DmitryKudriavtsev evet, yıldız kodun bozulmasına p 1,2,3,4,5,6,7,8,9,10ve virgüllerin ponları yeni çizgilerle ayırmasına neden olur .
Value Ink

TAMAM. Operatörün menzilden daha düşük önceliğe sahip olduğunu düşünmedim.
dkudriavtsev

11

Pyth, 2 bayt

ST

İlk defa cevaplamak için bir golf topu kullandım!

Açıklama:

S    1-indexed range. [1, 2, ... A].
 T   Variable. Initialized to 10. (Ten)
     Implicitly printed.

Saniyede Ninja'd: /
TuxCrafting


10

Aslında 9 bayt

19`;1+`na

Burada dene!

Açıklama:

19`;1+`na

1           Push 1 to stack
 9          Push 9 to stack
  `;1+`     Push Function inside ` to stack
   ;        Push top element to stack
    1+      Add 1 to top element
       n    Run function x times (9 times)
        a   Invert stack

9
Programlama Bulmacaları ve Code Golf'a Hoş Geldiniz!
Adnan,

10

Mathematica - 13 bayt

Echo@Range@10

MartinEnder sayesinde 4 bayt kurtarıldı !

Çıktı: >> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


10

JavaScript (ES6), 29 bayt

alert([...`${1e11/81^14}`]+0)

Çıkışlar 1,2,3,4,5,6,7,8,9,10. En kısa cevap değil, bunun eğlenceli bir hesaplama olduğunu düşündüm.


neden olmasınalert([...'1'+234567891]+0)
edc65

2
@ edc65 a) eğlenceli değil b) daha önce yayınlanan JavaScript yanıtı kadar kısa değil c) olduğu kadar kısa değil alert([...'1234567891']+0).
Neil


8

DC , 12 bayt

... şimdi biraz demek istiyorsun ...

[zzpA>L]dsLx

unrolled:

[   # start string constant
z   # push stack length (0 on 1st cycle)
z   # push stack length (1 on 1st cycle)
p   # print top of stack
A>L # if 10(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

Bir z(itme yığın uzunluğu) işlemleri yığından alır hiçbir karşılık gelen çalışma vardır. Bu şekilde, yığın her yineleme ile birer birer büyür. Bu döngü sayacı olarak kötüye kullanılır.

Bu döngü boş bir yığınla başlar, bu nedenle ilk , 1. yinelemede ziter 0, böylece yazdırma, 2. sürümden sonra, aşağıdaki sürümdeki zsonucun çoğaltılmasına karşılık gelir 1+d. Bu şekilde, karşılaştırmanın 10, bigger than 11aşağıdan çok, buradakinden daha büyük bir testi yapması gerekir .


DC , 14 bayt

Sadece düz ileri ...

1[p1+dB>L]dsLx

unrolled:

1   # push 1
[   # start string constant
p   # print top of stack
1+  # add 1 to tos
d   # push tos (duplicate)
B>L # if 11(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

Bunları açıklamanı isterdim = (
Evan Carroll

@EvanCarroll - dcProgram yazmak açıklamaktan daha kolaydır. Ama ;-) ... çalıştı
yeti

7

> <> , 13 bayt

01+:a)?;:nao!

Açıklama:

01+:a)?;:nao!

0                 push initial value of n on the stack
 1+               increments n
   :              duplicates n on the stack
    a             push 10 on the stack
     )            pops n and 10 of the stack, push n>10 on the stack
      ?;          if n>10, stops program execution
        :n        duplicates n on the stack in order to display it
          ao      display 10 (x0A, linefeed)
            !     skips the next instruction, which since ><> loops is the push 0

Çevrimiçi tercüman üzerinde çalışırken görebilirsiniz .


Lütfen bir açıklama ekler misiniz?
Clashsoft,

1
Nao programını çalıştır!
Cyoce

@Cyoce> <> coşkulu kod parçalarını yazmak için harika, aynı vincin bu motosiklet dişli denetleyicisi yanıtını aldım ;)
Aaron


6

J, 6 bayt

1+i.10

Çıktı: 1 2 3 4 5 6 7 8 9 10

Açıklama:

1+       NB. Add one to...
  i.10   NB. A range from 0 to 9.

Benim düşüncem >:i.10, ama aynı şeydi.
Dane,

6

Haskell, 17 bayt

main=print[1..10]

Çıkışlar [1,2,3,4,5,6,7,8,9,10].


Kafam biraz karıştı ... Olması gerektiğine neredeyse eminim [1..10]. Bir haskell derleyicisine erişimim yok ama sabahları tekrar kontrol edeceğim.
Zwei,

@Zwei Aralıkları Haskell'deki üst sınırlarını içermez.
C. Quilley

1
@ C.Quilley Tamamen yapıyorlar. Python'u düşünüyor olabilirsiniz.
xnor

Huh, bu kodu test ettiğimden emindim. Erken iddia için özür dilerim.
C. Quilley

1
Ana kısma ihtiyacın olduğunu sanmıyorum; Gerisi bir haskell program tipine sahiptir, IO (). Buna karşı belirli bir karar varsa beni düzeltin.
Lazersmoke

6

Bulanık Octo Guacamole, 7 bayt

1.25*$:

Çarpılar 2*5, bunun menzilini alır 1ve tüm yığını yazdırır.

1.25*$:
1.      # Push 1 to the stack and switch stacks
  25*   # Push 10 to the stack
     $  # Push every number in the inclusive range on the top of inactive stack and top of active stack ([1,2,3,4,5,6,7,8,9,10])
      : # Print the stack, which is a list containing the numbers.

6

PowerShell, 5 bayt

1..10

..Operatör ile ile arasında dinamik bir aralık oluşturur , ardından bu dizi boru hattında 1kalır 10. Çıktı kapalı. .ToString()Bir dizinin varsayılan yöntemi newline'dır, bu nedenle temiz bir kabukta çalıştırıldığında bu newline ile ayrılacaktır.


6

Java 7, 53 51 52 bayt (döngü)

void l(){for(int i=0;++i<11;)System.out.println(i);}

Alternatif 51 bayt (kodlanmış daha kısa .., ancak varsayılan bir boşluk olarak kabul edilir , bu nedenle izin verilmez):

void h(){System.out.print("1 2 3 4 5 6 7 8 9 10");}

Alternatif 54 bayt (özyinelemeli):

int i=1;void r(){System.out.println(i);if(i++<10)r();}

Üçü için Ungolfed ve test kodu:

Burada dene.

class Main{
  static void h(){
    System.out.print("1 2 3 4 5 6 7 8 9 10");
  }      

  static void l(){
    for(int i=0; ++i < 11;){
      System.out.println(i);
    }
  }

  static int i = 1;
  static void r(){
    System.out.println(i);
    if(i++ < 10){
      r();
    }
  }

  public static void main(String[] a){
    h();
    System.out.println();
    l();
    System.out.println();
    r();
  }
}

EDIT: Eğlenceler için: @SkippyLeGrandGourou tarafından doğru şekilde belirtildiği gibi, 1'den 10'a kadar olan taban soruda belirtilmemiştir, işte burada (2 kodlu olmayan) 1'den 10'a kadar olan Java kodları. 10:

Burada dene.

BASE-2: 1 10 
BASE-3: 1 2 10 
BASE-4: 1 2 3 10 
BASE-5: 1 2 3 4 10 
BASE-6: 1 2 3 4 5 10 
BASE-7: 1 2 3 4 5 6 10 
BASE-8: 1 2 3 4 5 6 7 10 
BASE-9: 1 2 3 4 5 6 7 8 10 
BASE-10: 1 2 3 4 5 6 7 8 9 10 

Döngü olabilir for(int i=1;i<11;)System.out.println(i++), bir bayt kaydeder.
Clashsoft

@ zyabin101 Sırasını değiştirdi, böylece kodlanmış cevap rekabet etmedi. Yine de cevabını bıraktığım halde, oldukça komik (ve hüzünlü) olduğu için, kodlanmış
kodun

2
@ zyabin101 Sorunun etiketlendiği durumlar hariç kolmogorov-karmaşıklığı .
Neil,

@Neil Oh, doğru. o_o
user48538

1
Java 8 burada lambdas sayesinde en iyi kazanan! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Neden daha uzun dedin? Java 8'dir ... Java 8 varsayılan olarak daha kısadır! Koddan önce ve sonra ayraç bile eklemedim! Fazladan bir karakter almadan 98'e bile sayabilirim! Görmek? Java 8 kuralları!
Olivier Grégoire

6

Perl 6, 12 bayt

say @(1..10)

@()Bir diziye dönüştürmek için gerekli olan

Alternatif çözüm:

say @(^10+1)

Bir aralık oluşturur [0,10) sonra bir tane ekler, sonra bir diziye dönüştürür.


Perl 5.10, 14 bayt ve neredeyse sizin için:say for(1..10)
Paul Picard

@PaulPicard yayınla! Perl 5 farklı bir dildir.
Ven,

Alanını kaldırabilir misin say@(1..10)?
Cyoce

@Cyoce ne yazık ki, bu bir hata.
Ven,

5

Python2 - 19 17 bayt

print range(1,11)

KevinLau sayesinde 1 byte kaydedildi - Kenny değil !

Çıktı: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Python 2 varsaymak rangeyerine kullanın xrange. Aslında, bu güncel sürüm makinemde Python sürümünde çalışmıyor gibi görünüyor.
Value Ink,

@ KevinLau-notKenny Bunu denediğime yemin edebilirdim ve STDOUT'a hiçbir şey bulamadım. Teşekkürler!
Yytsi,

Önemli: Sadece Python 2
Mega Man

1
@ ABcDexter Ben kontrol ettim, çok güzel! Python3'ü kullanmamamın nedeni rangebir yineleyici döndüren nesneyi bir listeye dökmek zorunda kalmamdı .
Yytsi

1
@TuukkaX Evet, kesinlikle. Ben de başka diller deneyeceğim. Teşekkürler :).
ABcDexter

5

Vim, 12 bayt

i1<Esc>qqYp<C-a>q8@q

çıktılar

1
2
3
4
5
6
7
8
9
10

Açıklama:

i1<Esc>qqYp<C-a>q8@qZZ
       qqYp<C-a>q      -- Macro q: duplicate line and increment (6)
i1<Esc>                -- Insert 1 (3)
                 8@q   -- Run macro q 8 times (3)

Bildiğim kadarıyla Vim ile tuşlara uyumlu olan Neovim 0.1.4 üzerinde test edildi.


Güzel. Ben ile geldi iYp<C-v><C-a>1<Esc>d^9@-ZZ. Aynı bayt sayısı.
primo



4

Harika, 11 karakter

print 1..10

Örnek çalışma:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

4

JavaScript, 25 24 bayt

for(i=1;i<11;)alert(i++)

1
PPCG'ye Hoşgeldiniz! Bence alert(i++)(ve diğerini kaldırarak i++) bir bayt kurtarabilirsin .
Martin Ender

Ne yazık ki soru, emrin yükselmesi gerektiğini, aksi halde for döngüsü yerine for döngüsü yerine bir azalma kullanarak bir bayttan tasarruf etmiş olmanız gerektiğini belirtir i=10;while(i)alert(i--).
kamoroso94

Kodun bir fonksiyona gömülmesi gerekmez mi?
ericw31415

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.