f×f回の表を印刷する


46

あなたの仕事は、16進数の時間テーブルを印刷することです:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 
00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 
00 03 06 09 0c 0f 12 15 18 1b 1e 21 24 27 2a 2d 
00 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 
00 05 0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b 
00 06 0c 12 18 1e 24 2a 30 36 3c 42 48 4e 54 5a 
00 07 0e 15 1c 23 2a 31 38 3f 46 4d 54 5b 62 69 
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 
00 09 12 1b 24 2d 36 3f 48 51 5a 63 6c 75 7e 87 
00 0a 14 1e 28 32 3c 46 50 5a 64 6e 78 82 8c 96 
00 0b 16 21 2c 37 42 4d 58 63 6e 79 84 8f 9a a5 
00 0c 18 24 30 3c 48 54 60 6c 78 84 90 9c a8 b4 
00 0d 1a 27 34 41 4e 5b 68 75 82 8f 9c a9 b6 c3 
00 0e 1c 2a 38 46 54 62 70 7e 8c 9a a8 b6 c4 d2 
00 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 

仕様:

  • 16進値を大文字で印刷できます。
  • 行は末尾のスペースで終了でき、プログラム出力は末尾の改行で終了できます。
  • すべての16進値は0、示されているようにsで2桁に埋め込まれる必要があります。

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




4
乗算表には通常、因子0は含まれません... :-)
ルイスメンドー

28
@Luis Mendo:学校の子供たちは、他にどのように数字の0倍を記憶できるのでしょうか?:P
ミルク

1
くそー、hexdumpを使用してソリューションを作りたかったのですが、それは4バイトブロックにグループ化されます。:(
HyperNeutrino

回答:



14

Python 2、60バイト

for n in range(256):r=n%16;print'%02x%s'%(n/16*r,r/15*'\n'),

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

使い方

0から255までのすべての整数nに対して、次を行います。

  • (n / 16)×(n%16)を計算します。

    nの範囲では、n / 16n%16の両方が独立して範囲0、…、15をカバーするため、乗算テーブルのすべてのエントリが生成されます。

  • 改行文字('\n'(n%16)/ 15回繰り返します。n%16 = 15の場合は同じ文字になり、それ以外の場合は空の文字列になります。

  • フォーマット文字列'%02x%s'は、前の2つの結果を1つの文字列に変換します。最初は小文字の16進整数表現で、(少なくとも)2桁にゼロが埋め込まれ、次に生成された文字列です。

  • 最後にprint...,、フォーマットされた結果を印刷します。

    printステートメントはコンマで終わるため、Pythonは改行を追加しません。また、次の文字列を出力する前に、Pythonは新しい行の先頭にない限りスペースを追加します。(source)これは、出力を希望どおりにフォーマットします。


14

ゼリー、12バイト

⁴Ḷ×þ`d⁴‘ịØhG

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

使い方

⁴Ḷ×þ`d⁴‘ịØhG  Main link. No arguments.

⁴             Set the return value to 16.
 Ḷ            Unlength; yield [0, ..., 15].
  ×þ`         Build the multiplication table of [0, ..., 15] and itself.
     d⁴       Divmod 16; yield [p : 16, p % 16] for each product p.
       ‘      Increment quotients and remainders (1-based indexing).
        ịØh   Index into the lowercase hexadecimal alphabet.
           G  Grid; join columns by spaces, rows by newlines.

これは、バイトではなく12文字です。質問によると、回答はバイト単位で測定され、回答は25 バイト 12 文字です。少なくともこのウェブサイトによると、mothereff.in / byte
counter

18
UTF-8では、確かに。ただし、JellyはSBCSを使用するため、各文字は単一バイトを使用してエンコードできます。
デニス

11

R、42バイト

as.hexmode(sapply(0:15,function(x)x*0:15))

次を印刷します。

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
 [1,] "00" "00" "00" "00" "00" "00" "00" "00" "00" "00"  "00"  "00"  "00"  "00"  "00"  "00" 
 [2,] "00" "01" "02" "03" "04" "05" "06" "07" "08" "09"  "0a"  "0b"  "0c"  "0d"  "0e"  "0f" 
 [3,] "00" "02" "04" "06" "08" "0a" "0c" "0e" "10" "12"  "14"  "16"  "18"  "1a"  "1c"  "1e" 
 [4,] "00" "03" "06" "09" "0c" "0f" "12" "15" "18" "1b"  "1e"  "21"  "24"  "27"  "2a"  "2d" 
 [5,] "00" "04" "08" "0c" "10" "14" "18" "1c" "20" "24"  "28"  "2c"  "30"  "34"  "38"  "3c" 
 [6,] "00" "05" "0a" "0f" "14" "19" "1e" "23" "28" "2d"  "32"  "37"  "3c"  "41"  "46"  "4b" 
 [7,] "00" "06" "0c" "12" "18" "1e" "24" "2a" "30" "36"  "3c"  "42"  "48"  "4e"  "54"  "5a" 
 [8,] "00" "07" "0e" "15" "1c" "23" "2a" "31" "38" "3f"  "46"  "4d"  "54"  "5b"  "62"  "69" 
 [9,] "00" "08" "10" "18" "20" "28" "30" "38" "40" "48"  "50"  "58"  "60"  "68"  "70"  "78" 
[10,] "00" "09" "12" "1b" "24" "2d" "36" "3f" "48" "51"  "5a"  "63"  "6c"  "75"  "7e"  "87" 
[11,] "00" "0a" "14" "1e" "28" "32" "3c" "46" "50" "5a"  "64"  "6e"  "78"  "82"  "8c"  "96" 
[12,] "00" "0b" "16" "21" "2c" "37" "42" "4d" "58" "63"  "6e"  "79"  "84"  "8f"  "9a"  "a5" 
[13,] "00" "0c" "18" "24" "30" "3c" "48" "54" "60" "6c"  "78"  "84"  "90"  "9c"  "a8"  "b4" 
[14,] "00" "0d" "1a" "27" "34" "41" "4e" "5b" "68" "75"  "82"  "8f"  "9c"  "a9"  "b6"  "c3" 
[15,] "00" "0e" "1c" "2a" "38" "46" "54" "62" "70" "7e"  "8c"  "9a"  "a8"  "b6"  "c4"  "d2" 
[16,] "00" "0f" "1e" "2d" "3c" "4b" "5a" "69" "78" "87"  "96"  "a5"  "b4"  "c3"  "d2"  "e1" 

1
方法:as.hexmode(outer(0:15,0:15、 `*`))
ixodesbeta

2
またはそれ以上as.hexmode(0:15%o%0:15)
ジュゼッペ

10

Bash + coreutils、40

  • @MitchellSpectorのおかげで1バイト節約
printf %02x\  $[{0..15}*{0..15}]|fmt -52
  • bashは算術展開の前にブレース展開を展開するため、文字列は$[{0..15}*{0..15}]最初に展開され$[0*0] $[0*1] $[0*2] ... $[0*15] $[1*0] ... $[15*15]ます。
  • 上記の一連の算術展開は、10進整数として数値テーブルの内容に展開されます。
  • printf '%02x '進10進整数のリストを表現し、2つの文字にゼロを詰め
  • fmt -52整数を47文字幅の行としてフォーマットし、必要な位置合わせを行います。 fmtは、行の目標文字を広くしようとします。 デフォルトでは、これは幅より7%短くなっています。52 * 93%-1(改行の場合)= 47。

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


1
いい解決策。fmt -52(wなし)を使用すると、1バイト削ることができるようです。
ミッチェルスペクター

いいね!ところで。zshでは、{0..15}\*{0..15}2バイト短くなります:)

5

C#6、98バイト

()=>{int i,j;for(i=-1;++i<16;)for(j=-1;++j<16;)System.Console.Write($"{i*j:x2} {j<15?"":"\n"}");};

repl.itデモ

標準のネストされたforループ。j> = 15のときに改行を印刷するのが唯一のトリックです。


1、repl.itが好きではないようだ$""
Metoniem

@Metoniem tio.run/#ははるかに優れています
HyperNeutrino

4

JavaScript(ES6)、79 78 77バイト

f=(i=256)=>i?f(--i)+(i%16*(i>>4)+256).toString(16).slice(1)+`
 `[~i&15&&1]:``

document.write('<pre>'+f())

編集:@ETHproductionsのおかげで1バイト、@ YairRandのおかげでもう1バイト節約されました。


@ETHproductions Bah、.slice(-2)私がやっていたときから残っていた('0'+toString(16))。私はすでに試し' \n'[+!(~i&15)]たと思うが、それは同じ長さだ。
ニール

私も1バイト...保存@ETHproductions
ニール・

で置き換えること(~i&15?' ':'\n')でバイトを保存できます' \n'[~i&15&&1]
ヤーランド

@YairRandあなたが意味すると思うが'\n '、私はアイデアを得る、ありがとう!
ニール

3

MATL19 18バイト

16:q&*1YAO3Z(!48e!

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

16:q   % Push [0 1 ... 15]
&*     % 16×16 matrix of pairwise products
1YA    % Convert to hexadecimal. Gives a 256×2 char array 
O3Z(   % Assign char 0 to 3rd column. Gives a 256×3 char array
!48e!  % Reshape in row-major order as a 48-column char array
       % Implicitly display. Char 0 is shown as space

3

PowerShell、46バイト

0..15|%{$i=$_;"$(0..15|%{"{0:X2}"-f($i*$_)})"}

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

から0にループし15$iその現在の番号に設定してから、再度ループします。-format演算子をX2指定して使用し、出力が先行ゼロでスペースにX10進数で埋め込まれることを指定します2

特筆すべきは、実際に唯一のゴルフですが、a (...)-join' 'を使用して16進数の結果を取得し、配列にカプセル化し、文字列に連結する代わりに、配列を文字列化する$OutputFieldSeparatorためのデフォルト値がスペース。つまり"$(...)"、代わりにスクリプトブロックを使用して文字列を作成し、6バイト節約できます。

これらの文字列はすべてパイプラインに残されておりWrite-Output、プログラムの完了時に暗黙的に出力されると、それらの間の改行が無料で提供されます。




2

ルビー、49バイト

256.times{|i|print"%02x "%(i/16*j=i%16),$/*j/=15}

%相当する演算子のかなり簡単な使用法sprintf

$/行区切り変数です(\nデフォルト)。

j/=15より長い括弧を避けるためなどの割り当ての使用に注意してください(j/15)


2

Mathematica、46バイト

Grid@Array[IntegerString[1##,16,2]&,{16,16},0]

組み込みのIntegerStringbase を使用し16てlengthにパディングする簡単な実装2Array[...,{16,16},0]二つの変数0から15までの各実行を持っています。


2

Matlab、53バイト

for i=[0:15]'*[0:15];fprintf('%02X ',i);disp(' ');end

サンプル出力:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  
00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E  
00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D  
00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C  
00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 46 4B  
00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A  
00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69  
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78  
00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87  
00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96  
00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5  
00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4  
00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3  
00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2  
00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 


2

Perl、48バイト

for$a(@%=0..15){printf"%02x "x@%.$/,map$a*$_,@%}

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

私はこれが最適なゴルフではないことを確信していますが、より良いものを見つけることができれば私は気が滅入るでしょう。

コードの内訳:

for$a(@%=0..15){printf"%02x "x@%.$/,map$a*$_,@%}
         0..15                                    #Create a list of the range 0 - 15...
      @%=                                         #...and store it in the array @%
for$a(        ){                               }  #Loop through @% with $a as the iterator
                printf[  string   ],[ params  ]   #Perl's port of the standard printf function
                      "%02x "                     #2-digit (hexit?) padding, followed by space...
                             x@%                  #...repeated 16 times (in scalar context, @% represents the size of array @%)...
                                .$/               #...followed by a newline
                                     map$a*$_,@%  #Loops through @%, and using $_ as the iterator, returns a list composed of each member of @% multiplied by the current $a


2

JavaScript、104バイト

s="";for(a=0;16>a;a++){for(b=0;16>b;b++)c=(a*b).toString(16),s=1==c.length?s+(" 0"+c):s+(" "+c);s+="\n"}

変数を使用した呼び出しs

console.log("HEX Table: " + s)

未ゴルフコード:

s=""; // Define s as empty string
for(a=0;16>a;a++){ // For y axis
  for(b=0;16>b;b++) // For x axis
    c=(a*b).toString(16),s=1==c.length?s+(" 0"+c):s+(" "+c); // Multiply and format
  s+="\n" // Add line breaks
}

"\n"改行していませんか?うわー、誰かが純粋な ECMAを一度使用しました。
ザカリー16

そして、あなたは使用できるはずs+=2>c.length?" 0"+c:" "+cです。
ザカリー16

私はこれが古いことを知っていますが、将来の課題にも役立つかもしれないいくつかの節約に気付きました!あなたは、両方を設定することができますaし、sする""ので、""*0まだです0。別のわずかな保存のために、b++使用されている場所にインライン化することも可能a*bですが、文字列を追加して書き換えると、s+=" "+(0+(a*b++).toString(16)).substr(-2)チャンクが保存されます。それらで86バイトになるはずです!お役に立てば幸いです!
ドムヘイスティングス

2

C、68 66バイト

f(i){for(i=0;i<256;)printf("%02x%c",i%16*(i++/16),i%16<15?32:10);}

ceilingcatのおかげで-2バイト!

ゴルフをしていない:

f(i){
  for(i=0; i<256;)
    printf("%02x%c", i%16*(i++/16), i%16<15 ? 32 : 10);
}

ゼロが埋め込まれた結果とスペースまたは改行を出力します。


これはi暗黙的intにCの標準機能として推測されますか?
-sergiol

@sergiolはい、intデフォルトの仮定です。
カールナップ

悲しいことに、出力はC標準に従って定義されていません(C99-6.5.2.2関数呼び出し)。
ジャスム

提案する~i%16代わりにi%16<15
ceilingcat

2

Python 3、55バイト

r=range(16)
for x in r:print(*['%02x'%(x*y)for y in r])

%formattingを使用すると、[2:]の使用量を大幅に節約できます。印刷機能で*スプラットを使用する場合も同様です。


2

Japt -R20 15バイト

GÆGÇ*X sGÃùT2 ¸

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

GÆGÇ*X sGÃùT2 ¸
G                   :16
 Æ                  :Map each X in the range [0,G)
  GÇ                :  Map the range [0,G)
    *X              :    Multiply by X
       sG           :    Convert to base-16 string
         Ã          :  End map
          ù         :  Left pad each
           T        :    With 0
            2       :    To length 2
              ¸     :  Join with spaces
                    :Implicitly join with newlines and output

; P®Ë
ETHproductions

@ETHproductions:ええ、しかし、私は光沢のある新しいショートカットで遊びたかったです!:D
シャギー


1

05AB1E、17バイト

16F15ÝN*8o+h€¦ðý»

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

16F               For N in [0,15]
   15Ý            Push [0, ..., 15]
      N*          Multiply by N
        8o+       Add 256
           h      Take the uppercase hexadecimal representation
            €¦    Remove the leading 1 of each value
              ðý  Join with spaces
                » End for and join everything with newlines

05AB1Eでこれを処理するより良い方法があるかもしれません。



確かに!;)そのようなコマンドは当時存在しませんでした。256をプッシュすることは2バイトのコマンドžzでした。2016年11月12日のInfo.txtを参照してください。言語がまだ進化しており、人々がそれを使用していることを見てうれしい:D。
32分にOsable

わかった 少数の定数がかなり新しいことは知っていましたが、for 256はもっと長いと思いました。しかし、あなたの答えは2016年12月からのものだと思います。:)私は..でもまだ暗黙の入力を持っていなかった2016年から一部の05AB1Eの回答を見てきました
ケビンCruijssen


1

Python2、102の 97 92 90 89バイト

i=1
exec"print' '.join('%02x'%(j-x)*(i>0)for x,j in enumerate(range(0,16*i,i)));i+=1;"*16

出力:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e
00 03 06 09 0c 0f 12 15 18 1b 1e 21 24 27 2a 2d
00 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c
00 05 0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b
00 06 0c 12 18 1e 24 2a 30 36 3c 42 48 4e 54 5a
00 07 0e 15 1c 23 2a 31 38 3f 46 4d 54 5b 62 69
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78
00 09 12 1b 24 2d 36 3f 48 51 5a 63 6c 75 7e 87
00 0a 14 1e 28 32 3c 46 50 5a 64 6e 78 82 8c 96
00 0b 16 21 2c 37 42 4d 58 63 6e 79 84 8f 9a a5
00 0c 18 24 30 3c 48 54 60 6c 78 84 90 9c a8 b4
00 0d 1a 27 34 41 4e 5b 68 75 82 8f 9c a9 b6 c3
00 0e 1c 2a 38 46 54 62 70 7e 8c 9a a8 b6 c4 d2
00 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1

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


1

SmileBASIC、56 51 47バイト

I=RND(16)J=RND(16)LOCATE I*3,J?HEX$(I*J,2)EXEC.

1

k、50バイト

`0:" "/'("0123456789abcdef"@16 16\)''{x*\:/:x}@!16

残念ながら、組み込みの16進数プリンターがないために妨げになります。

右から左、多かれ少なかれ読む:

                                               !16 / make the array {0, 1, 2, ..., 15}
                                     {x*\:/:x}@    / cartesian product of the array multiplied by itself, results in a table
        (                         )''              / for each row, for each column
                            16 16\                 / decode int to two digits in base 16
         "0123456789abcdef"@                       / get the characters to form a string
   " "/'                                           / join the columns with a space, the table is now an array 
`0:                                                / print the array, each element is one line

1

///、588バイト

/;/\/ //|/\/\///A/00 |B/
A|C;0|D;1|E;2|F;3|G;4|H;5|I;6|J;7|K;8/AAAAAAAAAAAAAAAAB01C2C3C4C5C6C7C8C9CaCbCcCdCeCf B02C4C6C8CaCcCeD0D2D4D6D8DaDcDe B03C6C9CcCfD2D5D8DbDeE1E4E7EaEd B04C8CcD0D4D8DcE0E4E8EcF0F4F8Fc B05CaCfD4D9DeE3E8EdF2F7FcG1G6Gb B06CcD2D8DeE4EaF0F6FcG2G8GeH4Ha B07CeD5 1cE3EaF1F8FfG6GdH4HbI2I9 B08D0D8E0E8F0F8G0G8H0H8I0I8J0J8 B09D2DbE4EdF6FfG8H1HaI3IcJ5JeK7 B0aD4DeE8F2FcG6H0HaI4IeJ8K2Kc 96 B0b 16E1EcF7G2Gd 58I3IeJ9K4Kf 9a a5 B0c 18E4F0FcG8 54I0IcJ8K4 90 9c a8 b4 B0d 1aE7F4G1GeHbI8J5K2Kf 9c a9 b6 c3 B0eDcEaF8G6H4I2J0JeKc 9a a8 b6 c4 d2 B0fDeEdFcGb 5aI9J8K7 96 a5 b4 c3 d2 e1 

改行付きの読みやすいバージョン:

/]
[///;/\/ //|/\/\///A/00 |B/
A|C;0|D;1|E;2|F;3|G;4|H;5|I;6|J;7|K;8/]
[AAAAAAAAAAAAAAAAB01C2C3C4C5C6C7C8C9CaCbCcCdCeCf ]
[B02C4C6C8CaCcCeD0D2D4D6D8DaDcDe B03C6C9CcCfD2D5D]
[8DbDeE1E4E7EaEd B04C8CcD0D4D8DcE0E4E8EcF0F4F8Fc ]
[B05CaCfD4D9DeE3E8EdF2F7FcG1G6Gb B06CcD2D8DeE4EaF]
[0F6FcG2G8GeH4Ha B07CeD5 1cE3EaF1F8FfG6GdH4HbI2I9]
[ B08D0D8E0E8F0F8G0G8H0H8I0I8J0J8 B09D2DbE4EdF6Ff]
[G8H1HaI3IcJ5JeK7 B0aD4DeE8F2FcG6H0HaI4IeJ8K2Kc 9]
[6 B0b 16E1EcF7G2Gd 58I3IeJ9K4Kf 9a a5 B0c 18E4F0]
[FcG8 54I0IcJ8K4 90 9c a8 b4 B0d 1aE7F4G1GeHbI8J5]
[K2Kf 9c a9 b6 c3 B0eDcEaF8G6H4I2J0JeKc 9a a8 b6 ]
[c4 d2 B0fDeEdFcGb 5aI9J8K7 96 a5 b4 c3 d2 e1 

///の仕組みを知っていれば、非常に簡単です。それはほんの数個の文字列の置換です。


1

///、544バイト

さて、誰もが今///答えをしています:

/|/\/\///Z/\/ |P/
0B|MZ9|LZ8|KZ7|JZ6|IZ5|HZ4|GZ3|FZ2|EZ1|C/BBB|B/0A|AZ0/0CCCCC0P1A2A3A4A5A6A7A8A9AaAbAcAdAeAfP2A4A6A8AaAcAeE0E2E4E6E8EaEcEeP3A6A9AcAfE2E5E8EbEeF1F4F7FaFdP4A8AcE0E4E8EcF0F4F8FcG0G4G8GcP5AaAfE4E9EeF3F8FdG2G7GcH1H6HbP6AcE2E8EeF4FaG0G6GcH2H8HeI4IaP7AeE5EcF3FaG1G8GfH6HdI4IbJ2J9P8E0E8F0F8G0G8H0H8I0I8J0J8K0K8P9E2EbF4FdG6GfH8I1IaJ3JcK5KeL7PaE4EeF8G2GcH6I0IaJ4JeK8L2LcM6PbE6F1FcG7H2HdI8J3JeK9L4LfMa a5PcE8F4G0GcH8I4J0JcK8L4M0Mc a8 b4PdEaF7G4H1HeIbJ8K5L2LfMc a9 b6 c3PeEcFaG8H6I4J2K0KeLcMa a8 b6 c4 d2PfEeFdGcHbIaJ9K8L7M6 a5 b4 c3 d2 e1

私は交換し\s0\s9A、その後Eを通じてM0 0C\n00 0、Pと/\sZ、最後に//して|、私が行ったように、コードの前に、これらすべてのを追加し、。

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


1

Python 3、66バイト

r=range(16)
for i in r:print(*[('0'+hex(j*i)[2:])[-2:]for j in r])

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