入力ごとに乗算表を印刷する


11

この課題では、入力ごとに乗算テーブルを印刷する必要があります。以下に例を示します。

Input: 2 

Output: 
0 2  4 6 8  10  12  14  16  18  20

Input: 20

Output: 20 40 60 80 100 120 140 160 180 200

ルール

  1. バイト単位の最短コードが優先されます。

  2. この挑戦はコードゴルフです、それはコードゴルフの一般的なルールに従います(

  3. コードが数字を印刷できない場合は、文字を使用できます。以下に例を示します。

    入力:B

    出力:BDFHJLNPRT

  4. 0から開始するか、番号(20など)から開始するかを選択できます。スペースを入れるか入れないかを選択できます。チャレンジは無料です。入力を取り、乗算表を印刷するだけです。

  5. 出力には、指定された数値のタイムテーブルの最初の10メンバーがリストされている必要があります。0 * nは省略できます。


9
最初の例には0〜10の倍数があり、2番目の例には1〜10の倍数があります。また、出力はスペースで区切る必要がありますか、または他のリスト形式を使用できますか?(スペースのみの場合、スペースの数はあなたの例では少しランダムです。)
マーティンエンダー

0または自分の番号(20など)から開始することを選択できます。スペースを入れるか入れないかを選択できます。チャレンジは無料です。入力を取得し、乗算表を印刷するだけです。
リッツ

4
PPCGへようこそ!これらは十分ではありませんが、将来的にはさらに情報を追加しますが、非常に単純な挑戦を見るのは素晴らしいことです。のように:テストケースからは、10個の数値を出力するだけでよいようですが、これは指定されていません。負の入力をサポートする必要がありますか?2と4の間に2つのスペースがあるのはなぜですか?最初のテストケースの出力に0があるのはなぜですか(10ではなく11の出力番号にする)。など。また、提案された課題
ケビンクルーイッセン

ルール3では、出力は何にすべきCですか?どうZ
リン

1
正確な出力とは、通常のルールでは、関数が出力をSTDOUTに出力するのではなくリストとして返すことを許可する傾向があります。
ブラッドギルバートb2gills

回答:



10

C#、105 96 67 56バイト

ラムダがC#でどのように機能するかがわかったので、最初の答えの更新を以下に示します。

n=>{for(int i=0;i++<10;)System.Console.Write(i*n+" ");};

11バイト節約します。


最初の投稿、私が間違ったことをしたことを許してください。また、実際に試したことがないので、気軽にゴルフのヒントを教えてください!

void c(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}

ゴルフをしていない:

void c(int n)
{
    for (int i = 0; i++ < 10 ; )
    {
        System.Console.Write(i*n+" ");
    }
}

ジョナサン・アラン、ありがとう、まだコメントを追加できません。そして、Kevin Cruijssenに感謝します。質問でスニペットが許可されていると指定されていない限り、常にプログラム全体を含める必要があると想定しました。システムを除外することもできますか。この場合、コンソールに印刷するための呼び出し、または使用/インポートが必要ですか?


1
PPCGへようこそ!あなたはクラスを削除することができます。ゴルフのルールでは主な機能のみが必要です:)
ジョナサンアラン

1
@JonathanAllanそれだけでなく、それらの同じルールによって、Mainまったく別のメソッドを作成することもできます。すなわちvoid f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}実際、PPCGへようこそ!
ケビンCruijssen


9

ゼリー、3 バイト

⁵R×

でそれをテストしTryItOnline
それとも最初の256例、きれいでも、整列TryItOnline

どうやって?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)

それは役に立たないだろうので、私はゼリーを学ぶのが大好きですが、半分のコマンドは私のためにレンダリングされません:D
ベータ崩壊

@BetaDecay私はほとんどそれらのを入力することはできません、彼らは任意のテキストエディタまたは私のCMDライン:(上で私のためにレンダリングされません-彼らはかかわらず、私のWindows 7マシン上でFirefoxで罰金をレンダリングします。
ジョナサン・アラン

あなたとエミグマが勝ちです。
リッツ

@BetaDecay- DejaVu Sans Monoフォントをダウンロードして(再)インストールするのに役立ちます(メモ帳++のほぼすべての文字が表示され、Firefoxを介したTIOでも使用され、すべての文字が表示されます)
Jonathan Allan

まさに私が考えていたこと、+ 1。
エリックアウトゴルファー

8

Clojure、70 80バイト

これはCGに関する私の最初の投稿です。入力が問題ないことを願っています。

70バイト

(defn -main[& a](println(map #(* %(read-string(first a)))(range 10))))

80バイト

(defn -main[& a](let[n(read-string(first a))](println(map #(* % n)(range 10)))))

プログラムは、数値をstdin引数として読み取り、結果を表示します。

出力

lein run 10
(0 10 20 30 40 50 60 70 80 90)

5
ようこそ!それは素晴らしい最初の答えです!
mbomb007


6

Perl、19バイト

+1を含む -n

STDINの入力で実行します。

perl -M5.1010 -n table.pl <<< 8

table.pl

say$_*$`for/$/..10

もしかして-n?または私は何かを見逃しましたか?
ダダ

@Dada:そうです、別のバージョンと混同しました。修正
Ton Hospel

5

Haskell、16バイト

(<$>[1..10]).(*)

使用例:(<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40]

ポイントフリーバージョン:f n = map (n*) [1..10]


何を<$>するの?
チョイス16

@Cyoce:<$>は中置バージョンですfmap(またはmapリストで使用する場合)。つまり、リストのすべての要素に最初の引数として指定された関数を適用します。func <$> list= fmap func list= map func list
nimi



4

PHP、34バイト

(34バイト)

for(;$i++<10;)echo$i*$argv[1].' ';

(34バイト)

for(;++$i%11;)echo$i*$argv[1].' ';

(34バイト)

while($i++<10)echo$i*$argv[1].' ';

(35バイト)

for(;$i++<10;)echo' '.$a+=$argv[1];

41 40バイト)

<?=join(' ',range(0,10*$a=$argv[1],$a));

<?=join(' ',range($a=$argv[1],10*$a,$a));

(44バイト)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';

range()with を使用$stepするものは、0:から開始すると短くなる場合があります<?=join(' ',range(0,10*$a=$argv[1],$a));
マナトワーク

0から開始することを許可するルールは、私がそれをしたときに設定されていませんでしたが、あなたは正しいです。これを更新します。
暗号

4

J、8バイト

(i.10)&*

これは範囲で09包括的(i.10結合した&乗算機能)ウィット(*)。これはゼロから始まります。

テストケース

   k =: (i.10)&*
   k 2
0 2 4 6 8 10 12 14 16 18
   k 10
0 10 20 30 40 50 60 70 80 90
   k"0 i.10
0 0  0  0  0  0  0  0  0  0
0 1  2  3  4  5  6  7  8  9
0 2  4  6  8 10 12 14 16 18
0 3  6  9 12 15 18 21 24 27
0 4  8 12 16 20 24 28 32 36
0 5 10 15 20 25 30 35 40 45
0 6 12 18 24 30 36 42 48 54
0 7 14 21 28 35 42 49 56 63
0 8 16 24 32 40 48 56 64 72
0 9 18 27 36 45 54 63 72 81

3

Zsh、19文字

echo {0..${1}0..$1}

サンプル実行:(
これは、それを実行するための対話型の方法で、と同等zsh scriptfile.sh 20です。)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200

3

Pythonの3、52の 33 30バイト

lambda n:list(range(0,11*n,n))

@manatworkのおかげで3バイト節約

出力のフォーマットは明らかに必要ありません


1
私のシェルの答えから借りる:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork

@manatwork私はPython 3を使用
-TuxCrafting

1
あなたは、Python 3を使用していますが、Pythonの2を使用して6つのバイトを保存することができます:lambda n:range(0,11*n,n)
ジョナサン・アラン

3

マタ、15 29バイト

args i
mata
A=1..10
B=`i'*A
B

Mataは、Stata商用統計パッケージのマトリックスプログラミング言語です。コードは行列を作成し、入力(この場合は2)で乗算し、新しい行列を出力します

出力

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+

1
入力はどうですか?また、再利用可能である必要があります。
ジョナサンアラン

1
OK、入力の受信を明確にするために編集しました
-f1rstguess


3

Stata、46バイト

args i
set obs `i'
gen x=_n
gen y=x*`i'
list y

出力

i = 15の場合

    +-----+
    |   y |
    |-----|
 1. |  15 |
 2. |  30 |
 3. |  45 |
 4. |  60 |
 5. |  75 |
    |-----|
 6. |  90 |
 7. | 105 |
 8. | 120 |
 9. | 135 |
 10.| 150 |
    |-----|
 11.| 165 |
 12.| 180 |
 13.| 195 |
 14.| 210 |
 15.| 225 |

ここで使用できるいくつかの余分な省略形があります:obの場合はob、genの場合はg、listの場合はlです。また、2つの変数を使用する代わりにxを_n * `i 'にすることは可能ですか?STATAで引数を見たことはありませんでした。新しいものを見せてくれてありがとう!
bmarks

3

チェダー、20バイト

n->(|>11).map(n&(*))

機能的な\ o /

これには説明が必要だとは思いませんが、追加したい場合は質問してください:)


チェダーを学ぶべきです。そして、何をしn&(*)ますか?私は(*)haskellだと同じことを意味すると仮定してい&ますが、その文脈では何をしますか?
チョイス16

@Cyoceの 結合
Downgoat

3

Java 7、61 57バイト

void c(int n){for(int i=0;i++<10;)System.out.print(i*n);}

未ゴルフ&テストケース:

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

class M{
  static void c(int n){
    for(int i = 0; i++ < 10; ){
      System.out.print(i*n);
    }
  }

  public static void main(String[] a){
    c(2);
    System.out.println();
    c(20);
  }
}

出力:

2468101214161820
20406080100120140160180200

スペースはオプションです。System.out.print(i * n); 4バイトを節約します
CameronD17

@ CameronD17ああ、このルールは私がこの答えをした後に追加されましたが、言及してくれてありがとう。削除しました。
ケビンCruijssen 16

3

JavaScript(ES6)、33 31バイト

f=(x,i=11)=>--i&&f(x,i)+" "+x*i

これは再帰的な解決策です。


3

T-SQL 61バイト

nを、テーブルに値を入力する必要がある番号に置き換えます。デモ

SELECT TOP 11 number*n FROM master..spt_values WHERE type='P'

spt_valueは、SQL Serverのドキュメント化されていないテーブルです。このテーブルの詳細については、

誰かがより良いTSQLソリューションを思いつくことを願っています。


3

Scala、24バイト

(n:Int)=>0 to 10 map(n*)

説明:

(n:Int)=> //define an anonymous function
  0 to 10 //create a range from 0 to 10
  map(n*) //multiply each element by the input


2

brainf ***、84バイト

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

入力はシングルバイトとして期待し(BFは最大255の数値でのみ動作できるため)、結果をシングルバイトとして返します。一部の値はASCIIのように見えますが、そのように扱うべきではありません。返されたバイトの10進表現を見てください。

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


>、[> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++を実行することで5バイトを節約できます++++> +++++++++> ++++++++++ [<]>-]> [。>]
ジェフ

@Jeff残念ながら、バイトがオーバーフローして0にリセットされるため、25を超えるすべての入力が中断されます。オーバーフロー0sが一致すると[<]、プロセス全体が無限ループします。
スティーブンH.

正しいですが、オーバーフローしたバイトは、とにかくあなたのコードで誤った出力になりますよね?
ジェフ

1
彼らは正しい出力をしている@Jeff、彼らはただのmod 255で動作している
スティーブンH.

2

JavaScript、42バイト

function f(a){for(i=0;i<11;i++)alert(i*a)}

私はJSをよく知らないのですが、forのテスト部分に増分を移動できますか?
ジョナサンアラン

編集しました。今は大丈夫です。
リッツ

今すぐalert()で警告します。
リッツ

それは私に警告なしで警告していました:ここで -私はそれを取り戻します、リロードするために「実行」だけでなく「実行」をクリックする必要があります
ジョナサンアラン

1
@JonathanAllanなに?
リッツ


2

PowerShell v2 +、23バイト

param($n)1..10|%{$_*$n}

コマンドライン引数を介して入力を受け取り、範囲1からまで10ループします。各ループはその番号*$nをパイプラインに配置します。Write-Outputプログラム実行の最後で暗黙的に出力すると、改行で区切られた値になります。

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 2
2
4
6
8
10
12
14
16
18
20

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 20
20
40
60
80
100
120
140
160
180
200

2

C89、44バイト

k;main(n){for(k=n*11;k-=n;)printf("%d ",k);}

ゴルフをしていない:

k;
main(n)
{
    for (k=n*11 ; k-=n ;)
        printf("%d ", k);
}

コンパイルして実行(入力4)

gcc -ansi main.c && ./a.out 2 3 4

出力

40 36 32 28 24 20 16 12 8 4 

試して

Demo



2

Javascript(ES6)、34 31バイト

a=>{for(i=0;i<11;)alert(++i*a)}
(a)=>{for(i=0;i<11;++i)alert(i*a)}

grizzlyのおかげで3バイト節約されました。


少なくともの周りに括弧は必要ありませんが、aの位置に関して創造的になることも可能だと思います++
ニール

2

Cubix、24バイト

;;..I1.N-?W.;;)W@/So..*O

Cubixは、2次元のスタックベースのエソランです。Cubixは、ソースコードがキューブの外側にラップされているという点で、他の2D言語とは異なります。

オンラインでテストしてください!注:コードをコピーして貼り付ける必要があり、繰り返しの間に50ミリ秒の遅延があります。

説明

インタプリタが最初に行うことは、コードが収まる最小のキューブを見つけ出すことです。この場合、エッジの長さは1です。その後、.6つの辺がすべて埋められるまで、コードには何も実行されません。空白は処理前に削除されるため、このコードは上記と同じです。

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O

これは、新しいスタックオプションを使用した少し短いものですI.0.WrN;-!@vrW>r)*O;o
-MickyT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.