1から10までの数字を印刷


42

これは非常に簡単な挑戦かもしれませんが、まだcode-golfで行われていないことに驚いています。

1から10までのすべての整数を昇順で標準出力に出力します。

出力形式は、言語がサポートするものであれば何でもかまいません。これには、任意の区切り文字(コンマ、セミコロン、改行、これらの組み合わせなど、数字は含まれません)、およびプレフィックスとポストフィックス(など[...])が含まれます。ただし、1〜10以外の数値を出力することはできません。プログラムは入力を受け付けない場合があります。標準の抜け穴は許可されていません。

これはなので、バイト単位の最短回答が勝ちです!

リーダーボード


10
関連(重複?)
ルイスメンドー

17
唯一の変更が単一のパラメータのハードコーディングである場合、それは「些細な変更」のバナーに該当し、このサイトの標準ではまだstillとしてカウントされます。
ピーターテイラー

10
@PeterTaylorもう1つの課題には、整数の制限に関する大きな問題があります。64ビット整数を持たないすべてのTC言語を指定する方法は、それらを実装する必要があります。(そしてそれは非常に多くの言語に影響します。)
マーティンエンダー

17
@xnor率直に言って、私は他の課題をこの課題の複製として閉じたいと思います。要件はほとんどそれを台無しにします。
デニス

9
(現在)71個の回答のすべてが、基数が10進数であると仮定しているとは信じられません…
Skippy le Grand Gourou

回答:


68

C、36バイト

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

これは、ループが最初の2桁の数字の後に終了するために機能します。


1
関数にパラメーターを渡すことができるという言及はありません。
アッシュBurlaczenko 16

10
@AshBurlaczenko何のことを言ってるの?これはゴルフの標準的な手法で、intを1に初期化します。コマンドライン引数を渡す必要はありません。実際、そうすると、プログラムは間違った出力を生成します。
xsot

6
@AshBurlaczenko コンセンサスにより、プログラムは不必要な入力で呼び出されないことを前提とすることに同意しました(この場合、プログラム自体を超えて追加のコマンドライン引数はありません)。つまりi、このプログラムが実行されると、ここは常に1になります。別の意味ですか?
FryAmTheEggman

2
申し訳ありませんが、Cを書いたことはありませんが、使用したすべての言語と同様に、デフォルト値は0であると想定しています。
アッシュBurlaczenko 16

16
@AshBurlaczenko Cでは、mainの最初の引数はコマンドライン引数の数です(実行可能ファイル名自体を含む)。追加の引数は渡されないため、そのカウントは1です。mainの2番目の引数はコマンドライン引数の実際のリストですが、このプログラムではその引数は無視されます。
クリス・ブシャール

43

HTML、44バイト

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

これは、出力をハードコーディングするよりも長くなりますが、この方法の方が興味深いです。<ol>10個の空のリスト要素(<li>)を持つ順序付きリスト()を作成します。デフォルトでは、順序付きリストは1とピリオドで始まる10進数で区切られます。

HTML5は、閉じられていないタグに関して非常に寛容なので、li暗黙的にタグを閉じます。


4
HTML5の寛容性(?)を悪用するために+1。
ハイパーニュートリノ

1
冷血な。大好きです。
ricdesi

実際、NinjaBearMonkeyと@HyperNeutrino、これはそれ自体が「許し」ではありません。HTML5は、どのタグを閉じないでおくことが許可されているかについてかなり明確です。リストとリストアイテムは2つだけです。
KRyan

41

Bash、12文字

echo {1..10}

サンプル実行:

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

Bash + coreutils、10文字

(ただ面白くしよう': No such file or directory↵ls: cannot access 'として、セパレータとして使用しています。)

ls {1..10}

サンプル実行:

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文字

(ただ退屈しようとしている。または単にしようとしているだけではない...)

seq 10

サンプル実行:

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

6
最後の1つはseq / coreutilsのみで、bashは関係ありません。
ハイド

1
@hyde:bashがなければ、seqへの呼び出しは不可能でしょうか?
メガマン

私たちが出て残せば私のビジョンでは、bash、その後、seq通訳になります。しかし、その後10は「seq」言語の有効なプログラムですか?
マナトワーク

コンソールでこれを決して試さないでください:echo {1..1000000000}興味があれば、自分の責任で行ってください。
-Brain90

@ Brain90、私の貧弱な8Gb RAMマシンには危険はありません。;)「bash:ブレース展開:1000000000要素のメモリの割り当てに失敗しました」。少なくともbash4.3.46で。
マナトワーク

24

ゼリー、2バイト

⁵R

説明

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

7
⁵R、2バイト
ルイスメンドー

13
なぜ地球上で誰かが言語を発明することになるでコマンドが返すのいずれか5番目の引数または整数10 ..?
アンドレイKostyrka

14
@AndreïKostyrkaなぜならデニス
-TuxCrafting

1
1バイトだけのエンコーディングがありますか?UTF-8では3バイトなので、プログラムの長さは4バイトでなければなりません。
ラドバンガラビク

2
@RadovanGarabíkJellyは独自のコードページを使用しています
-TuxCrafting

20

Brainfuck、58バイト

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

オンラインでお試しください!


1
私はそれを打ち負かしました、そして、短くも、私たちが同じトリックを使ったとは思わないので、とにかく私のものを投稿します。私の+1を持っている:)
かてんきょう

私は67バイトで近かったが、十分に近かった:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
ジュリアンLachniet


16

LOLCODE、79バイト

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

このコードは、使用しているコンパイラに応じて調整が必要な場合があります。HAI / KTHXBYEを追加したい人もいれば、変数を事前に宣言したい人もいます。ループ名が使用されない場合でも、ループ名が2文字より短い場合、1つのコンパイラーが中断します。



14

R、4バイト

2:10

「:」は、おそらく最もよく使用されるRコマンドの1つです。コメントでのBarrankaによる改善。


2
ベクトルを返さずに文字列を印刷する必要がある場合は、を検討してくださいcat(1:10)
アンドレイKostyrka

先頭に空白がありますか?
Clashsoft

9
出力が[1] 1 2 3 4 5 6 7 8 9 10であることを考えると、多分それはより良いでしょう2:10、それは出力します[1] 2 3 4 5 6 7 8 9 10
Barranka

@Clashsoft、それは間違いだった-ありがとう。そして、はい、Barranka、良い点-賛成です。
忘れられた


11

Pyth、2バイト

ST

初めてゴルフラングを使って答えました!

説明:

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

秒単位で忍者:/
TuxCrafting


10

実際には、9バイト

19`;1+`na

ここで試してみてください!

説明:

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
プログラミングパズルとコードゴルフへようこそ!
アドナン


10

JavaScript(ES6)、29バイト

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

出力1,2,3,4,5,6,7,8,9,10。最短の答えではありませんが、楽しい計算だと思いました。


なぜそうではないalert([...'1'+234567891]+0)
-edc65

2
@ edc65 A)それはそれとしても、短いようではありません)、それは以前に掲載JavaScriptの解答cとして短いようではありません)楽しいbとではありませんalert([...'1234567891']+0)
ニール


8

DC、12バイト

...少し意味が...

[zzpA>L]dsLx

展開:

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

z(スタック長のプッシュ)操作の1つには、スタックから取得する対応する操作がありません。このように、スタックは反復ごとに1つずつ成長します。これはループカウンターとして悪用されます。

このループは空のスタックで開始されるため、1回目は1回目のイテレーションをzプッシュ0するため、次のバージョンのz結果の複製に対応する2回目以降に印刷が行われ1+dます。このように、比較10bigger than 11下ではなくここよりも大きいかどうかをテストする必要があります。


DC、14バイト

まっすぐ進む...

1[p1+dB>L]dsLx

展開:

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)

これらを説明してほしい=(
エヴァンキャロル

@EvanCarroll — dcプログラムを書くことは説明するよりも簡単です。しかし、私は試してみました
; ;

7

> <>、13バイト

01+:a)?;:nao!

説明 :

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

オンライン通訳で実際に見ることができます。


説明を追加していただけますか?
Clashsoft

1
プログラムnaoを実行します!
チョイス

@Cyoce> <>は熱狂的なコードを書くのに最適です。同じバイクギアチェッカーの答えがあります;)
アーロン


6

J、6バイト

1+i.10

出力: 1 2 3 4 5 6 7 8 9 10

説明:

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

私の考えはでしたが>:i.10、それは同じことです。
デーン

6

Haskell、17バイト

main=print[1..10]

出力[1,2,3,4,5,6,7,8,9,10]


私はここで少し混乱しています...私はそれがそうであるべきだとほぼ確信しています[1..10]。私はhaskellコンパイラにアクセスできませんが、午前中に再確認します。
ツヴァイ

@Zwei Rangesは、Haskellの上限を含みません。
C.クイリー16

1
@ C.Quilley彼らは完全にやります。Pythonを考えているかもしれません。
-xnor

ええと、私はこのコードをテストしたと確信していた。以前の主張に対する謝罪。
C.クイリー16

1
main =の部分は必要ないと思います。残りはhaskellプログラムのタイプであるIO()です。これに対して特定の裁定がある場合は私を修正してください。
レイザースモーク

6

ファジーオクトワカモレ、7バイト

1.25*$:

Multiplies 2*5、その範囲1、およびを取り、スタック全体を出力します。

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バイト

1..10

..から1までの演算子でダイナミックレンジを作成し、10その配列はパイプラインに残ります。出力は暗黙的です。.ToString()配列のデフォルトのメソッドは改行です。そのため、クリーンなシェルで実行すると、改行で区切られます。


6

Java 7、53 51 52バイト(ループ)

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

代替の51バイト(ハードコーディングは短くなりますが、デフォルトの抜け穴と見なされるため、許可されません):

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

代替54バイト(再帰的):

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

3つすべての非ゴルフ&テストコード:

ここで試してみてください。

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:funsiesの場合:ASは正しくによって指摘@SkippyLeGrandGourou、1〜10のベースがので、ここで、当該指定されていないいる(非コードgolfed)Javaコードベース10に出力する1 2への10:

ここで試してみてください。

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 

ループはfor(int i=1;i<11;)System.out.println(i++)、1バイトを節約できます。
Clashsoft

@ zyabin101順序を変更して、ハードコードされた回答が競合しないようにしました。それはかなり面白い(悲しい)以来、それでも...ハードコードされたは、Java 7の1-10を印刷する最短の道であることを、けれども答えでそれを左
ケビンCruijssen

2
@ zyabin101質問にkolmogorov-complexityタグが付けられている場合を除きます
ニール

@ニールああ、そう。o_o
user48538

1
ここでは、ラムダのおかげでJava 8が明確な勝者です!()->java.util.stream.IntStream.range(1,11).forEach(System.out::println)。なぜあなたはそれが長いと言うのですか?Java 8 ... Java 8はデフォルトで短くなっています!コードの前後にブレースも入れませんでした!余分なキャラクターを取得せずに98までカウントできます!見る?Java 8ルール!
オリビエグレゴワール

6

Perl 6、12バイト

say @(1..10)

@()配列に変換するのに必要とされています

代替ソリューション:

say @(^10+1)

範囲[0,10)を構築してから追加し、配列に変換します。


5.10、14バイトの場合、ほとんどあなたのような:say for(1..10)
ポール・ピカード

@PaulPicardで投稿してください!Perl 5は別の言語です。
ヴェン

のスペースを削除できますsay@(1..10)か?
チョイス

@Cyoce残念ながら、それはエラーです。
ベン

5

Python2 - 19の 17バイト

print range(1,11)

ケニーではなくKevinLauのおかげで1バイト保存されました

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


Python 2を想定して、range代わりにを使用してくださいxrange。実際、この現在のバージョンは、どちらのPythonバージョンでも私のマシンでは動作しないようです。
値のインク

@ KevinLau-notKenny私はそれを試してみたが、STDOUTには何も得られなかったと誓うことができた。ありがとう!
Yytsi

重要:Python 2のみです
メガマン

1
@ABcDexter私はそれをチェックアウトしました、とてもいいです!Python3を使用しなかった理由rangeは、反復子を返すオブジェクトをリストにキャストすることを余儀なくされたためです。
-Yytsi

1
@TuukkaXはい、正確に。他の言語も試してみます。ありがとう:)。
-ABcDexter

5

Vim、12バイト

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

出力

1
2
3
4
5
6
7
8
9
10

説明:

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)

Neovim 0.1.4でテストしました。これは私の知る限り、Vimとキーストローク互換です。


いいね 私は思いついたiYp<C-v><C-a>1<Esc>d^9@-ZZ。同じバイト数。
プリモ



4

Groovy、11文字

print 1..10

サンプル実行:

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

4

JavaScript、25 24バイト

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

1
PPCGへようこそ!私はあなたがすることでバイトを節約できると思うalert(i++)(そして他を削除するi++)。
マーティンエンダー

質問が順序が昇順でなければならないと規定しているのは残念i=10;while(i)alert(i--)です。
kamoroso94

コードを関数に埋め込む必要はありませんか?
ericw31415

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.