Cetak angka dari 1 hingga 10


43

Ini mungkin tantangan yang sangat sederhana, tetapi saya terkejut belum melakukan code-golf:

Cetak semua Integer dari 1 hingga 10 inklusif dalam urutan naik ke output standar.

Format output Anda bisa apa saja yang didukung bahasa Anda. Ini termasuk pemisah sewenang-wenang (koma, titik koma, baris baru, kombinasi dari mereka, dll., Tetapi tidak ada digit), dan awalan dan postfix (seperti [...]). Namun, Anda tidak boleh mengeluarkan angka selain dari 1 hingga 10. Program Anda mungkin tidak menerima input apa pun. Celah standar tidak diijinkan.

Ini , jadi jawaban tersingkat dalam byte menang!

Papan peringkat


10
Terkait (duplikat?)
Luis Mendo

17
Jika satu-satunya perubahan adalah pengkodean keras parameter tunggal maka itu berada di bawah panji " perubahan sepele ", dan menurut standar situs ini masih dianggap sebagai dupe.
Peter Taylor

10
@PeterTaylor Tantangan lain memiliki masalah besar dengan batas integer. Cara ini menentukan setiap bahasa TC yang tidak memiliki bilangan bulat 64-bit perlu mengimplementasikannya. (Dan itu memengaruhi banyak bahasa.)
Martin Ender

17
@ xnor Sejujurnya, saya lebih suka menutup tantangan lain sebagai duplikat dari yang ini. Syaratnya cukup banyak reruntuhan itu.
Dennis

9
Saya tidak percaya setiap satu dari (saat ini) 71 jawaban menganggap dasar harus desimal ...
Skippy le Grand Gourou

Jawaban:


69

C, 36 byte

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

Ini berfungsi karena loop berakhir setelah 2 digit angka pertama.


1
Tidak disebutkan kemampuan untuk meneruskan parameter ke fungsi.
Ash Burlaczenko

10
@ AshBurlaczenko Apa yang kamu bicarakan? Ini adalah teknik standar dalam bermain golf untuk menginisialisasi int ke 1. Anda tidak perlu melewati argumen baris perintah. Bahkan, hal itu akan menyebabkan program menghasilkan output yang salah.
xsot

6
@AshBurlaczenko Dengan konsensus kami telah sepakat bahwa program dapat berasumsi mereka tidak akan dipanggil dengan input yang tidak perlu (dalam hal ini, tidak ada argumen baris perintah tambahan, di luar program itu sendiri). Itu berarti di isini akan selalu ada 1 ketika program ini dijalankan. Apakah Anda bermaksud sesuatu yang lain?
FryAmTheEggman

2
Maaf, saya tidak menulis C tetapi menganggap nilai defaultnya adalah 0 seperti pada setiap bahasa yang saya gunakan.
Ash Burlaczenko

16
@AshBurlaczenko Di C, argumen pertama ke utama adalah jumlah argumen baris perintah (termasuk nama yang dapat dieksekusi itu sendiri). Karena tidak ada argumen tambahan yang diteruskan, jumlah itu adalah 1. Argumen kedua ke utama adalah daftar argumen baris perintah yang sebenarnya, tetapi argumen itu diabaikan dalam program ini.
Chris Bouchard

45

HTML, 44 byte

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

Ini lebih lama dari hardcoding output, tetapi lebih menarik dengan cara ini. Itu membuat daftar diurutkan ( <ol>) dengan sepuluh elemen daftar kosong ( <li>). Secara default, daftar yang dipesan dibatasi oleh angka desimal yang dimulai dengan 1 dan periode.

HTML5 sangat memaafkan tentang tag tidak tertutup, sehingga tag tertutup lisecara implisit.


4
+1 untuk menyalahgunakan pemaafan HTML5 (?).
HyperNeutrino

1
Berdarah dingin. Aku menyukainya.
ricdesi

Sebenarnya, NinjaBearMonkey dan @HyperNeutrino, ini bukan "maaf"; HTML5 cukup eksplisit tentang tag mana yang dibiarkan tidak ditutup. Hanya saja daftar dan daftar item adalah dua.
KRyan

43

Bash, 12 karakter

echo {1..10}

Contoh dijalankan:

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

Bash + coreutils, 10 karakter

(Hanya berusaha menjadi lucu dan menggunakan ': No such file or directory↵ls: cannot access 'sebagai pemisah.)

ls {1..10}

Contoh dijalankan:

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

(Hanya mencoba untuk menjadi membosankan. Atau tidak hanya mencoba ...)

seq 10

Contoh dijalankan:

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

6
Yang terakhir hanya seq / coreutils, bash tidak terlibat.
hyde

1
@ Hyde: Tanpa bash, panggilan ke seq tidak akan mungkin, kan?
Mega Man

Dalam visi saya, jika kita pergi bash, maka seqakan menjadi penerjemah. Tapi 10apakah program yang valid dalam bahasa "seq"?
manatwork

Jangan pernah coba ini di konsol Anda: echo {1..1000000000} Jika Anda ingin tahu, lakukan dengan risiko Anda sendiri.
Brain90

@ Brain90, tidak ada bahaya pada mesin RAM 8Gb saya yang buruk. ;) "Bash: brace expansion: gagal mengalokasikan memori untuk 1000000000 elemen". Setidaknya dengan bash4.3.46.
manatwork

25

Jelly, 2 byte

⁵R

Penjelasan

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

7
⁵R, dua byte
Luis Mendo

13
Mengapa di bumi seseorang menciptakan bahasa di mana perintah mengembalikan argumen kelima atau bilangan bulat 10? ..
Andreï Kostyrka

14
@ AndreïKostyrka Karena Dennis
TuxCrafting

1
Apakah ada pengkodean di mana hanya satu byte? Karena 3 byte dalam UTF-8, panjang program harus 4 byte.
Radovan Garabík

2
@ RadovanGarabík Jelly menggunakan codepage sendiri
TuxCrafting

20

Brainfuck, 58 byte

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

Cobalah online!


1
Kalahkan saya untuk itu, dan lebih pendek juga, akan memposting milik saya karena saya tidak berpikir kami menggunakan trik yang sama. Dapatkan +1 saya :)
Katenkyo

Saya dekat dengan 67 byte, tetapi tidak cukup dekat:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet


16

LOLCODE, 79 byte

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

Kode ini mungkin memerlukan beberapa penyesuaian tergantung pada kompiler yang Anda gunakan. Beberapa ingin Anda menambahkan HAI / KTHXBYE, beberapa ingin Anda mendeklarasikan variabel sebelumnya. Satu kompiler rusak jika nama loop Anda lebih pendek dari dua karakter, meskipun nama loop tidak pernah digunakan.


15

CJam, 6 5 byte

A,:)`

1 byte disimpan berkat Luis Mendo

Keluaran: [1 2 3 4 5 6 7 8 9 10]

Penjelasan:

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

Cobalah online!


3
Saya suka wajah smiley. (Apakah tidak ada kesalahan dalam penjelasan Anda: A, membuat daftar dari 0 hingga 9)
KarlKastor

14

R, 4 byte

2:10

":" Mungkin salah satu perintah R yang paling banyak digunakan. Peningkatan oleh Barranka dalam komentar.


2
Jika mereka membutuhkan pencetakan string, bukan mengembalikan vektor, pertimbangkan cat(1:10).
Andreï Kostyrka

Apakah ada spasi putih terkemuka?
Clashsoft

9
Mengingat bahwa outputnya [1] 1 2 3 4 5 6 7 8 9 10, mungkin akan lebih baik 2:10, yang akan menampilkan[1] 2 3 4 5 6 7 8 9 10
Barranka

@Clashsoft, itu kesalahan - terima kasih. Dan ya, Barranka, poin bagus - terangkat.
Forgottenscience

13

Ruby, 8 byte

Dipisahkan oleh baris baru.

p *1..10

* Dipisahkan oleh baris baru.
David Conrad

Kamu bisa melakukannya?
dkudriavtsev

@DmitryKudriavtsev ya, bintang menyebabkan kode terurai p 1,2,3,4,5,6,7,8,9,10dan koma menyebabkan puntuk memisahkan mereka dengan baris baru.
Nilai Tinta

BAIK. Saya tidak berpikir bahwa operator memiliki prioritas lebih rendah dari jangkauan.
dkudriavtsev

11

Pyth, 2 byte

ST

Pertama kali saya menggunakan bahasa golf untuk menjawab!

Penjelasan:

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

Ninja'd oleh detik: /
TuxCrafting


10

Sebenarnya, 9 Bytes

19`;1+`na

Coba di sini!

Penjelasan:

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
Selamat Datang di Programming Puzzles dan Code Golf!
Adnan

10

Mathematica - 13 byte

Echo@Range@10

Disimpan 4 byte berkat MartinEnder !

Keluaran: >> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


10

JavaScript (ES6), 29 byte

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

Keluaran 1,2,3,4,5,6,7,8,9,10. Bukan jawaban terpendek tapi saya pikir itu perhitungan yang menyenangkan.


kenapa tidakalert([...'1'+234567891]+0)
edc65

2
@ edc65 a) ini tidak menyenangkan b) tidak sesingkat jawaban JavaScript yang diposting sebelumnya c) bahkan tidak sesingkat alert([...'1234567891']+0).
Neil


8

DC , 12 byte

... sedikit berarti sekarang ...

[zzpA>L]dsLx

Belum dibuka:

[   # 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)

Salah satu operasi z(panjang tumpukan dorong) tidak memiliki operasi yang sesuai yang mengambilnya dari tumpukan. Dengan cara ini tumpukan tumbuh dengan setiap iterasi satu per satu. Ini disalahgunakan sebagai penghitung lingkaran.

Lingkaran ini dimulai dengan tumpukan kosong, jadi yang pertama zmendorong 0iterasi ke-1 sehingga pencetakan terjadi setelah ke-2 zyang berhubungan dengan menduplikasi hasil 1+ddalam versi di bawah ini. Dengan cara ini, perbandingan perlu diuji lebih besar daripada di 10sini daripada di bigger than 11bawah.


DC , 14 byte

Lurus saja ...

1[p1+dB>L]dsLx

Belum dibuka:

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)

Saya berharap Anda akan menjelaskan ini = (
Evan Carroll

@EvanCarroll - Menulis dcprogram lebih mudah daripada menjelaskan. Tapi saya mencoba ... ;-)

7

> <> , 13 byte

01+:a)?;:nao!

Penjelasan:

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

Anda dapat melihatnya beraksi di penerjemah online .


Bisakah Anda menambahkan penjelasan?
Clashsoft

1
Jalankan program nao!
Cyoce

@Cyoce> <> hebat untuk menulis potongan kode yang antusias, saya punya jawaban pemeriksa gigi sepeda motor dengan nada yang sama;)
Aaron


6

J, 6 byte

1+i.10

Keluaran: 1 2 3 4 5 6 7 8 9 10

Penjelasan:

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

Pikiranku dulu >:i.10, tapi itu hal yang sama.
Dane

6

Haskell, 17 byte

main=print[1..10]

Keluaran [1,2,3,4,5,6,7,8,9,10].


Saya agak bingung di sini ... Saya hampir yakin seharusnya [1..10]. Saya tidak memiliki akses ke kompiler haskell, tetapi saya akan mengecek di pagi hari.
Zwei

@Zwei Ranges tidak termasuk batas atas mereka di Haskell.
C. Quilley

1
@ C. Quilley Mereka benar-benar melakukannya. Anda mungkin berpikir tentang Python.
xnor

Huh, saya yakin saya sudah menguji kode ini. Permintaan maaf untuk pernyataan sebelumnya.
C. Quilley

1
Saya tidak berpikir Anda perlu bagian = utama; sisanya memiliki jenis program haskell, IO (). Perbaiki saya jika ada putusan khusus terhadap ini.
Lazersmoke

6

Fuzzy Octo Guacamole, 7 byte

1.25*$:

Mengalikan 2*5, mengambil kisaran itu dan 1, dan mencetak seluruh tumpukan.

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 byte

1..10

Menciptakan rentang dinamis dengan ..operator dari 1ke 10, maka array tersebut dibiarkan di atas pipa. Output tersirat. .ToString()Metode default dari array adalah baris baru, jadi ini akan dipisahkan baris saat dijalankan dalam shell yang bersih.


6

Java 7, 53 51 52 byte (putaran)

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

Alternatif 51 byte (hardcoded lebih pendek .., tetapi dianggap sebagai celah default , jadi tidak diizinkan):

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

Alternatif 54 byte (rekursif):

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

Tidak digabungkan & kode pengujian untuk ketiganya:

Coba di sini.

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: Untuk funsies: Seperti yang ditunjukkan dengan benar oleh @SkippyLeGrandGourou , basis dari 1 hingga 10 tidak ditentukan dalam pertanyaan, jadi di sini kode Java (non-code-golfed) yang menghasilkan 1 hingga 10 di basis 2 ke 10:

Coba di sini.

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 

Loop bisa for(int i=1;i<11;)System.out.println(i++), menyimpan satu byte.
Clashsoft

@ zyabin101 Mengubah urutan sehingga jawaban yang dikodekan tidak bersaing. Meskipun demikian, tetap ada jawabannya, karena cukup lucu (dan sedih) bahwa hard-coded adalah cara terpendek untuk mencetak 1-10 di Java 7 ..
Kevin Cruijssen

2
@ zyabin101 Kecuali ketika pertanyaan ini ditandai kolmogorov-kompleksitas .
Neil

@Neil Oh, benar. o_o
user48538

1
Java 8 adalah pemenang yang jelas di sini berkat lambdas! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). Mengapa Anda mengatakan itu lebih lama? Secara default Java 8 ... Java 8 lebih pendek! Saya bahkan tidak memasang kawat gigi sebelum dan sesudah kode! Saya bahkan dapat menghitung hingga 98 tanpa mendapatkan karakter tambahan! Lihat? 8 aturan Java!
Olivier Grégoire

6

Perl 6, 12 byte

say @(1..10)

The @()diperlukan untuk mengkonversi ke array

Solusi alternatif:

say @(^10+1)

Buat rentang [0,10) lalu tambahkan satu, lalu konversi ke array.


Untuk Perl 5.10, 14 byte dan hampir seperti milik Anda:say for(1..10)
Paul Picard

@PaulPicard, postinglah! Perl 5 adalah bahasa yang berbeda.
Ven

Bisakah Anda menghapus ruang untuk say@(1..10)?
Cyoce

@ Ayo, sayangnya tidak, ini kesalahan.
Ven

5

Python2 - 19 17 byte

print range(1,11)

Disimpan 1 byte, terima kasih kepada KevinLau - bukan Kenny !

Keluaran: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Gunakan rangealih-alih xrange, dengan asumsi Python 2. Faktanya, versi saat ini tampaknya tidak berfungsi pada komputer saya di kedua versi Python.
Nilai Tinta

@ KevinLau-notKenny saya berani bersumpah bahwa saya sudah mencoba itu, dan tidak ada yang berhasil dari STDOUT. Terima kasih!
Yytsi

Penting: Ini hanya Python 2
Mega Man

1
@ ABcDexter Saya memeriksanya, sangat bagus! Alasan saya tidak menggunakan Python3, adalah karena saya dipaksa untuk melemparkan rangeobjek yang mengembalikan iterator, ke daftar.
Yytsi

1
@ TuukkaX Ya, tepatnya. Saya akan mencoba beberapa bahasa lain juga. Terima kasih :)
ABcDexter

5

Vim, 12 byte

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

Keluaran

1
2
3
4
5
6
7
8
9
10

Penjelasan:

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)

Diuji pada Neovim 0.1.4, yang setahu saya adalah keystroke-kompatibel dengan Vim.


Bagus. Saya datang dengan iYp<C-v><C-a>1<Esc>d^9@-ZZ. Jumlah byte yang sama.
Primo


5

MarioLANG , 34 27 25 byte

+<
:"
+
:
+
:
+
:
+
:!
=#

Cobalah online!

Terima kasih kepada Jo King untuk -7 -9 byte!

kode:

Mario jatuh, menambah dan mengatakan nomornya lima kali, lalu dia naik lift, naik dan jatuh lagi, menambah dan mengatakan nomornya lima kali lagi. Lalu dia berjalan ke kiri dan keluar dari kode.

14 byte lebih pendek dari cara mudah:

39 byte

+:+:+:+:+:+:+:+:+:+
==================:

Cobalah online!


Terima kasih. Terkadang Anda tidak bisa melihat hutan untuk pepohonan.
Dorian


4

Groovy, 11 karakter

print 1..10

Contoh dijalankan:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.