この乗算表を印刷する


17

最短のコードを記述して、次の乗算テーブルを印刷します。

1×1=1
1×2=2  2×2=4
1×3=3  2×3=6  3×3=9
1×4=4  2×4=8  3×4=12 4×4=16
1×5=5  2×5=10 3×5=15 4×5=20 5×5=25
1×6=6  2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7  2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8  2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9  2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

6
誰かが本当に2つのforループ以外に何かをするつもりですか?やりがいのある(興味深い)部分はどこですか?
jdstankosky

3
使用しませんfor。OK、使用します while
ヨハネ

3
末尾のスペースは重要ですか?
モニカを

最初の列に1つではなく2つのスペースがあるのはなぜですか?(他のコラムと同様)
RosLuP

1
@jdstankoskyおそらくあなたはもう少し面白い私の答えを見つけないかもしれない-関与なしループ
テイラー・スコット

回答:


13

Excel、92 91バイト

VBAエディターのイミディエイトウィンドウから、次のコマンドを実行します Range("A1:I9").Formula="=IF(ROW()<COLUMN(),"""",COLUMN()&""×""&ROW()&""=""&COLUMN()*ROW())" 。出力はアクティブなワークシートに直接あります。 Excel output screenshot

の順序を入れ替えてifに変更>=して、余分なバイトをゴルフしました<。スクリーンショットは更新しませんでしたが、上部の数式にのみ影響し、出力には影響しません。


ハ!+1という優れた答えがいつ表示されるのか疑問に思いました。
魔法のタコUr

1
ありがとう。私は、通常のネストされたFORループなしでそれを行うことについてのコメントに部分的に動機付けられたと思います。
GuitarPicker

私もそうだった!!!
魔法のタコUr

8

パイソン(75)

r=range(1,10)
for i in r:print''.join('%sx%s=%-3s'%(j,i,i*j)for j in r[:i])

他の2つのPythonバージョンよりも少し良くなっています。


-1バイトのf-stringsでPython 3.6を使用します:TIO
connectyourcharger

7

C ++、106 98バイト

2つのループといくつかのトリックを使用しました。

#import <cstdio>
main(){for(int i,j;i++-9;j=0)while(j++-i)printf("%dx%d=%d%c",j,i,i*j,j<i?32:10);}

PPCGへようこそ!素敵な最初の投稿!
Rɪᴋᴇʀ

1
#import <stdio.h> main(){for(int i=0,j;i++-9;j=0)while(j++-i)printf("%dx%d=%d%s",j,i,i*j,j<i?"\n":" ";}3バイト短くなります。
DJMcMayhem

#importとの間にスペースが必要<cstdio>ですか?
ザカリー

@Zacharýいいえ、スペースは必要ありません
カールナップ

5

J:57 51文字

([:;"2*\#"2(":@],'x',":@[,'=',":@*,' '"_)"0/~)>:i.9

ループなし。


接続詞(および副詞)は動詞よりも優先順位が高いため、3組の括弧を削除できます。([:;"2*\#"2(":@],'x',":@[,'=',":@*,' '"_)"0/~)>:i.9
-randomra

@randomra良い電話。ヒントをありがとう!
SL2

4

APL(37)

∆∘.{⊃(⍺≥⍵)/,/(⍕⍺)'×'(⍕⍵)'=',⍕⍺×⍵}∆←⍳9

そして、2つのforループでさえありません。APLでは、次の構成要素:

x ∘.F y

どこxyリストである、とFの機能である、適用F中の項目の各ペアにxしてy、あなたの行列を与えます。

だから、:∆∘.×∆←⍳9あなたはすなわち、上記の機能は、各ペアのために必要な文字列を生成し、1から9までの乗算テーブルを取得する(⍕⍺)に続いて最初の数、の、文字列表現×に続く、(⍕⍵)続く二番目の数字の文字列表現、=続きます、⍕⍺×⍵、限り⍺≥⍵


4

Ruby:60 59文字

1.upto(9){|i|puts (1..i).map{|j|"%dx%d=%-3d"%[j,i,i*j]}*""}

サンプル実行:

bash-4.2$ ruby -e '1.upto(9){|i|puts (1..i).map{|j|"%dx%d=%-3d"%[j,i,i*j]}*""}'
1x1=1 
1x2=2  2x2=4 
1x3=3  2x3=6  3x3=9 
1x4=4  2x4=8  3x4=12 4x4=16
1x5=5  2x5=10 3x5=15 4x5=20 5x5=25
1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

イニシャル(1..9).map{をに変更して、1文字を保存できます1.upto(9){
ポール・プレスティッジ

末尾にスペースがあります(最初の3行)。元のテーブルにはそれらがありません。それが違いを作る場合、私は...が、よく分からない
復活モニカ

@WolframH、私がチェックしたすべてのソリューションは、末尾にスペースがあるか、正確なフォーマットを再現していません。
マナトワーク

4

Perl、54文字

printf"%dx$?=%-3d"x$?.$/,map{$_,$_*$?}1..$?while$?++<9

4

APL(Dyalog)、28

↑{⍵{⍕⍵,'×',⍺,'=',⍺×⍵}¨⍳⍵}¨⍳9

他の言語の二重ループに類似

{⍵{...}¨⍳⍵}¨⍳9ダブルループ
⍕⍵,'×',⍺,'=',⍺×⍵を設定して、各ペアの文字列を作成します
配列の配列をスティングの行列に変換します

出力

1 × 1 = 1                                                                                                 
1 × 2 = 2  2 × 2 = 4                                                                                      
1 × 3 = 3  2 × 3 = 6   3 × 3 = 9                                                                          
1 × 4 = 4  2 × 4 = 8   3 × 4 = 12  4 × 4 = 16                                                             
1 × 5 = 5  2 × 5 = 10  3 × 5 = 15  4 × 5 = 20  5 × 5 = 25                                                 
1 × 6 = 6  2 × 6 = 12  3 × 6 = 18  4 × 6 = 24  5 × 6 = 30  6 × 6 = 36                                     
1 × 7 = 7  2 × 7 = 14  3 × 7 = 21  4 × 7 = 28  5 × 7 = 35  6 × 7 = 42  7 × 7 = 49                         
1 × 8 = 8  2 × 8 = 16  3 × 8 = 24  4 × 8 = 32  5 × 8 = 40  6 × 8 = 48  7 × 8 = 56  8 × 8 = 64             
1 × 9 = 9  2 × 9 = 18  3 × 9 = 27  4 × 9 = 36  5 × 9 = 45  6 × 9 = 54  7 × 9 = 63  8 × 9 = 72  9 × 9 = 81

同じ効果を得るためにいくつかのカンマを削除することもできます。↑{⍵{⍕⍵'×'⍺'=',⍺×⍵}¨⍳⍵}¨⍳9または、新しい「キー演算子」を使用することもできます{⍕⍵'×'⍺'=',⍺×⍵}¨∘⍳⌸⍳9
。– ngn

4

Mathematica、45

かなり退屈ですが、構文比較として役立つと思います:

Grid@Table[Row@{a, "x", b, "=", a b}, {a, 9}, {b, a}]

2
なに、これには組み込み機能がないと言っているのですか?
アーロン

1
機能の膨張@Aaron Mathematicaは範囲をしないというありがたい、はるかにまだ。
Mr.Wizard

4

D、75文字

foreach(i,1..10){foreach(j,1..i+1){writef("%dx%d=%d ",i,j,i*j);}writeln();}

あなたはコードが機能していない、または完全なプログラムではないと言った


1
デフォルトでは、スニペットは許可されていません。機能または完全なプログラムが必要です。
spaghetto

@quartataこの回答は、デフォルトが1年半前のものです。
デニス

@Dennisああ、スニペットが許可されていないというルールがそんなに新しいものだとは知らなかった。ごめんなさい。
spaghetto

これは機能しますか?foreach(i,1..10){foreach(j,1..i+1)writef("%dx%d=%d ",i,j,i*j);writeln;}
ザカリー

3

VBScript(133); ループなし。

g=""
sub m(x,y)
    g=x&"x"&y&"="&x*y&vbTab&g
    if x>1 then 
        m x-1,y
    elseif y>1 then 
        g=vbLf&g 
        m y-1,y-1
    end if
end sub
m 9,9
wscript.echo g

チャレンジャーのリクエストに応じて:ループなし。このコードは再帰的なサブルーチン呼び出しを使用します。


3

メープル、64

seq(printf(seq(printf("%ax%a=%a ",j,i,i*j),j=1..i),"\n"),i=1..9)

3

x86_64マシンコード(Linux)、175 99 76バイト

0000000000400080 <_start>:
  400080:   66 bf 09 00             mov    $0x9,%di

0000000000400084 <_table.L2>:
  400084:   6a 0a                   pushq  $0xa
  400086:   89 fe                   mov    %edi,%esi

0000000000400088 <_table.L3>:
  400088:   89 f0                   mov    %esi,%eax
  40008a:   f7 e7                   mul    %edi

000000000040008c <_printInteger>:
  40008c:   6a 20                   pushq  $0x20
  40008e:   3c 0a                   cmp    $0xa,%al
  400090:   7d 02                   jge    400094 <_printInteger.L1>
  400092:   6a 20                   pushq  $0x20

0000000000400094 <_printInteger.L1>:
  400094:   66 31 d2                xor    %dx,%dx
  400097:   b3 0a                   mov    $0xa,%bl
  400099:   66 f7 f3                div    %bx
  40009c:   83 c2 30                add    $0x30,%edx
  40009f:   52                      push   %rdx
  4000a0:   66 85 c0                test   %ax,%ax
  4000a3:   75 ef                   jne    400094 <_printInteger.L1>
  4000a5:   6a 3d                   pushq  $0x3d
  4000a7:   66 57                   push   %di
  4000a9:   80 04 24 30             addb   $0x30,(%rsp)
  4000ad:   6a 78                   pushq  $0x78
  4000af:   66 56                   push   %si
  4000b1:   80 04 24 30             addb   $0x30,(%rsp)
  4000b5:   ff ce                   dec    %esi
  4000b7:   75 cf                   jne    400088 <_table.L3>
  4000b9:   ff cf                   dec    %edi
  4000bb:   75 c7                   jne    400084 <_table.L2>

00000000004000bd <_printChars>:
  4000bd:   66 ba 00 08             mov    $0x800,%dx
  4000c1:   b0 01                   mov    $0x1,%al
  4000c3:   66 bf 01 00             mov    $0x1,%di
  4000c7:   48 89 e6                mov    %rsp,%rsi
  4000ca:   0f 05                   syscall

これはバイナリファイルのダンプであり、これはすべて175バイトです。基本的にはすべての答えと同じ2つのループを行いますが、コンソールへの印刷は少し難しく、基本的に文字をスタックにプッシュして逆に印刷し、(Linux固有の)syscallを作成して実際にそれらの文字を入れます標準出力に。

これを最適化して、1回の書き込み操作のみが実行され(高速!)、マジックナンバーが表示され(wow!)、syscallを実行する前に結果全体をスタックにプッシュするようにしました。誰が適切な終了コードを必要とするので、私も出口ルーチンを出しましたか?

これが私の最初2番目のリンクです元のnasm構文での試行次に示します。

それを改善する方法について他の提案を持っている人を歓迎します。誰かが興味を持っている場合は、ロジックをより詳細に説明することもできます。

(また、すべての列を揃えるために余分なスペースを出力しませんが、それが必要な場合は、さらに数バイトのコストでロジックを配置できます)。

編集:余分なスペースを印刷するようになりました。レジスタを使用してかなりおかしなことをしているため、このプログラムを拡張する場合はおそらく不安定です。


PPCGには、完全なプログラムまたは機能が必要です。スニペットは暗黙的に許可されていません(つまり、OPが明示的に許可している場合にのみ使用できます)
エリックアウトゴルファー

ああ、私の悪い。OPがそれを指定していなかったことを忘れました。
デイビー

3

Javascript、190バイト

パーティーに遅れたが、@ jdstankoskyのコメントに腹を立て、別のアプローチを取ることにした。これは、テンプレートを壊し、その過程で評価するJavascriptエントリです。

t="a*b=c ";u="";r=u;for(i=1;i<10;i++){a=0;u=u+t;r+=u.split(' ').map(x=>x.replace('a',++a).replace('b',i)).map(x=>x.replace('*','x').replace('c',eval(x.substr(0,3)))).join(' ')+'\n'}alert(r);

ゴルフされていないバージョン(関数がアラートを出すスクリプトではなくテーブルを返す少し古いバージョンですが、同じ原則が適用されます):

function f()
{
    t="a*b=c "; // template for our multiplication table
    u="";r="";  // tmp- and return values
    for(i=1;i<10;i++)
    {
        a=0;    // is auto-incremented in MAP
        u=u+t;// extend the template once per iteration
        v=u.split(' '); // Smash the template to pieces
        w=v.map(x=>x.replace('a', ++a).replace('b', i)) // MAP replaces the A and B's with the correct numbers
        w=w.map(x=>x.replace('*', 'x').replace('c', eval(x.substring(0,3)))).join(' '); // second map evals that and replaces c with the answer, makes the asteriks into an X
        r=r+w+'\n'  // results get concatenated
    }
    return r;
}

1
私はそのコメントを少し前に作りました、ハハ。私は実際にこれを見てうれしいです。
-jdstankosky

3

パスカル、128バイト

1つの再帰的な手順ですべてを処理します。で呼び出しm(9,9)ます。

procedure m(i,j:integer);begin if i<1then Exit;if i=j then begin m(i-1,j-1);writeln;end;m(i-1,j);write(i,'x',j,'=',i*j,' ');end;

ゴルフをしていない:

procedure mul(i, j: integer);
begin
  if i<1 then
    Exit;
  if i=j then
  begin
    mul(i-1, j-1);
    writeln;
  end;
  mul(i-1, j);
  write(i,'x',j,'=',i*j,' ');
end;

3

フーリエ 756 632バイト

124バイトありがとう@BetaDecay!

1o120~Ea1o61a1o10~Na1oEa2o61a2o32~Saa2oEa2o61a4oNa1oEa3o61a3oSaa2oEa3o61a6oSaa3oEa3o61a9o^a1oEa4o61a4oSaa2oEa4o61a8oSaa3oEa4o61a12oSa4oEa4o61a16oNa1oEa5o61a5oSaa2oEa5o61aNoSa3oEa5o61a15oSa4oEa5o61a20oSa5oEa5o61a25oNa1oEa6o61a6oSaa2oEa6o61a12oSa3oEa6o61a18oSa4oEa6o61a24oSa5oEa6o61a30oSa6oEa6o61a36oNa1oEa7o61a7oSaa2oEa7o61a14oSa3oEa7o61a21oSa4oEa7o61a28oSa5oEa7o61a35oSa6oEa7o61a42oSa7oEa7o61a49oNa1oEa8o61a8oSaa2oEa8o61a16oSa3oEa8o61a24oSa4oEa8o61aSoa5oEa8o61a40oSa6oEa8o61a48oSa7oEa8o61a56oSa8oEa8o61a64oNa1oEa9o61a9oSaa2oEa9o61a18oSa3oEa9o61a27oSa4oEa9o61a36oSa5oEa9o61a45oSa6oEa9o61a54oSa7oEa9o61a63oSa8oEa9o61a72oSa9oEa9o61a81o

1
私はに管理さ124バイト、あなたのプログラムをオフゴルフ N.として、変数Eとして数120を保存することによって、Sとして数32と10
ベータ崩壊

2

vba 55

(即時ウィンドウ)

for f=1 to 9:for j=1 to f:?f;"x";j;"=";f*j,:next:?:next

注-GWBasicには、2つの追加文字のみが必要です。

1 for f=1 to 9:for j=1 to f:?f;"x";j;"=";f*j,:next:?:next

2

Javascript、75

for(s="",a=b=1;a<10;b=a==b?(a++,alert(s),s="",1):b+1)s+=b+"x"+a+"="+a*b+" "

forループの2つ以上(組み合わせ?)


まあ、私が確信している唯一のことは、別々のループで75を取得できることです(私の古いコメント
-ajax333221

2

Coreutils / Bash:147 136 135

for i in {1..9}; do
  yes $'\n' | head -n $[i-1] > $i
  paste -dx= <(yes $i) <(seq $i 9) <(seq $[i*i] $i $[9*i]) |head -n$[10-i] >> $i
done
paste {1..9}

明示的な改行を使用し、廃止されたヘッドオプションを使用して、ゴルフをしました(ありがとうmanatwork):

for i in {1..9};do yes '
'|head -$[i-1]>$i;paste -dx= <(yes $i) <(seq $i 9) <(seq $[i*i] $i $[9*i])| head -$[10-i]>>$i;done;paste {1..9}

出力:

1x1=1                               
1x2=2   2x2=4                           
1x3=3   2x3=6   3x3=9                       
1x4=4   2x4=8   3x4=12  4x4=16                  
1x5=5   2x5=10  3x5=15  4x5=20  5x5=25              
1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36          
1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49      
1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81

すべての$(( ))算術評価を$[ ];に置き換えて、8文字をスペアします。$'\n'エスケープされた改行文字をリテラル文字に置き換えて2文字を共有します(つまりyes '、1行'で、次の行で)。head-nオプションを明示的に使用せず、2文字だけを余分に使用します-
マナトワーク

@manatwork:$[ ]表記法については知りませんでした。交換-nでは、-それが全部で11ありますので:)どうもありがとうございました、唯一の1文字以下です。
トール

2

LOLCODE、202バイト

IM IN YR o UPPIN YR b TIL BOTH SAEM b AN 10
c R ""
IM IN YR i UPPIN YR a TIL BOTH SAEM a AN SUM OF b AN 1
c R SMOOSH c SMOOSH a "x" b "=" PRODUKT OF a AN b " " MKAY
IM OUTTA YR i
VISIBLE c
IM OUTTA YR o

ゴルフをしていない:

HAI 1.3 BTW Unnecessary in current implementations
IM IN YR outer UPPIN YR multiplicand TIL BOTH SAEM multiplicand AN 10
    I HAS A output ITZ ""
    IM IN YR inner UPPIN YR multiplier TIL BOTH SAEM multiplier AN SUM OF multiplicand AN 1
        output R SMOOSH output AN SMOOSH multiplier AN "x" AN multiplicand AN "=" AN PRODUCKT OF multiplicand AN multiplier AN " " MKAY MKAY BTW AN is optional to separate arguments, a linebreak is an implicit MKAY.
    IM OUTTA YR inner
    VISIBLE output
IM OUTTA YR outer
KTHXBYE BTW Unnecessary in current implementations

非スピーカー向けのPythonated:

for multiplicand in range(1, 10):
    output = ""
    for multiplier in range(1, multiplicand + 1):
        output = output + (multiplier + "x" + multiplicand + "=" + str(multiplicand * multiplier) + " ")
    print(output)

コードチャレンジ送信でLOLCODEを使用している人として、賛成票を投じてください!このラングが
大好き

2

c#、142バイト

Enumerable.Range(1,9).ToList().ForEach(i =>Enumerable.Range(1,i).ToList().ForEach(j=>Console.Write("{0}x{1}={2}{3}",j,i,j*i,j==i?"\n":"\t")));

目の前では...


ForEach「見通しではない」よく... xD
HyperNeutrino

2

> <>、50バイト

1v
 1
?\::n"x"o{::n"="o}*n" "o1+:{:})
 \~1+:a=?;ao

あなたはオンライン通訳でそれを試すことができます

各行の末尾にスペースがあることに注意してください。これにより、それが間違っている可能性があります(この答えについては、OPはこの点について述べていません)。


2

///、268バイト

/_/\/\///x/×_N/x9=_E/x8=_V/x7=_S/x6=_F/x5=_R/x4=_O/
1_t/  2_h/ 3/1x1=1Ox2=2tx2=4Ox3=3tx3=6 hx3=9OR4tR8 hR12 4R16OF5tF10hF15 4F20 5F25OS6tS12hS18 4S24 5S30 6S36OV7tV14hV21 4V28 5V35 6V42 7V49OE8tE16hE24 4E32 5E40 6E48 7E56 8E64ON9tN18hN27 4N36 5N45 6N54 7N63 8N72 9N81

2

JAVA、103 94 92 90バイト

Java 9 SDKのJShellを使用すると、大量のスペースを節約できます

for(int i=0,j;i++<9;)for(j=1;j<=i;)System.out.print(i+"*"+j+"="+i*j+"\t"+(j++<i?"":"\n"))

Kevinの提案に従って、ソリューションを2バイト削減しました。

クリフルートのおかげで、さらに1バイト減らすことができました


1
int 2番目のforループから削除し,jて、最初のループに追加することで、数バイトを節約できます。このように:for(int i=0,j;++i<=9;)for(j=1;j<=i;)System.out.print(i+"*"+j+"="+i*j+"\t"+(j++<i?"":"\n"));
ケビンクルーイッセン

あなたは置き換えることができますように思える++i<=9i++<9
cliffroot

2

C 79バイト

i=1,j=1;f(){printf("%dx%d=%d ",j,i,i*j);++i>j?++j,i=1,j<=9?puts(""),f():0:f();}

メイン

main(){f();}

テーブル

1x1=1 
2x1=2 2x2=4 
3x1=3 3x2=6 3x3=9 
4x1=4 4x2=8 4x3=12 4x4=16 
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 


1

Javascript:82文字

o="";for(a=1;a<10;a++){for(b=1;b<=a;b++){o+=a+"x"+b+"="+(a*b)+" "}o+="\n"}alert(o)

1
あなたのコードはこのように75に短縮できますがfor(i=0,s="";9>i++;){for(j=0;j++<i;)s+=j+"x"+i+"="+j*i+" ";s+="\n"}alert(s)、2桁のダブルスペースのことは尊重されません、私はそれを提出しようとしていましたが+(9<i*j?" ":" ")、単に+" " 編集する代わりに使用しました param
ajax333221

私はうるさくなりますが、タスクのように4x4直接下にありません5x4
user902383

1

Python:87

私は他の人が投稿した解決策に目を光らせていますが、それらのほとんどは間隔を正しくとっていないようです。

for i in range(1,10):print''.join(('%s×%s=%s'%(j,i,i*j)).ljust(7)for j in range(1,i+1))

末尾にスペースがありますが、それはカウントされますか?;-)
モニカを

1

パイソン(79)

または(77range(10)開始時に空行を生成することを除いて使用する場合

for i in range(1,10):print' '.join('%dx%d=%-2d'%(j,i,j*i)for j in range(1,i+1))

1x1=1 
1x2=2  2x2=4 
1x3=3  2x3=6  3x3=9 
1x4=4  2x4=8  3x4=12 4x4=16
1x5=5  2x5=10 3x5=15 4x5=20 5x5=25
1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

1

Perl:65、62文字

map{map{printf"%dx%d=%2d ",$_,$i,$_*$i}1..($i=$_);print$/}1..9

printfの括弧を削除して2文字をスペアします。$ iの割り当てを範囲式に移動して、1文字をスペアしますmap{map{printf"%dx%d=%2d ",$_,$i,$_*$i}1..($i=$_);print$/}1..9
マナトワーク

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