20
\$\begingroup\$

Write shortest code to print the following Multiplication Table:

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
\$\endgroup\$
8
  • 6
    \$\begingroup\$ Is anyone really going to do anything besides 2 for loops? Where's the challenging (interesting) part? \$\endgroup\$ Apr 15, 2013 at 23:56
  • 3
    \$\begingroup\$ I don't use for. Ok, I use while. \$\endgroup\$ Apr 16, 2013 at 13:31
  • 3
    \$\begingroup\$ Are trailing spaces important? \$\endgroup\$ May 13, 2013 at 19:06
  • 1
    \$\begingroup\$ @jdstankosky perhaps you may find my answer a bit more interesting - no loops involved \$\endgroup\$ Jul 22, 2017 at 21:03
  • 1
    \$\begingroup\$ Are we even allowed to use x in place of ×? (If not, that invalidates a whole lot of programs) \$\endgroup\$
    – Adalynn
    Jul 23, 2017 at 0:33

69 Answers 69

1 2
3
0
\$\begingroup\$

Haskell, 84 82 bytes

putStr$init$unlines[unwords[s i++'×':s j++'=':s(i*j)|i<-[1..j]]|j<-[1..9]]
s=show

-2 thanks to @Laikoni!

Try it online!

\$\endgroup\$
0
0
\$\begingroup\$

Perl 5, 51 bytes

for$/(1..9){printf$_."x$/=%-3d",$_*$/for 1..$/;say}

Try it online!

\$\endgroup\$
0
\$\begingroup\$

uBASIC, 87 bytes

Anonymous function that takes no input and outputs to the console.

0ForY=1To9:ForX=1To9:z=x*y:Ifx<=yThen?x;"x";y;"=";z;" ";:Ifz<10Then?" ";
2NextX:?:NextY

Try it online!

\$\endgroup\$
0
\$\begingroup\$

MY-BASIC, 105 bytes

Anonymous function that takes no input and prints a multiplication table to the console.

Str(...) conversions are costly in this solution.

For Y=1 To 9
For X=1 To 9
If x<=y Then Print Left(Str(x)+"x"+Str(y)+"="+Str(x*y)+"  ",7)
Next
Print;
Next

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Python 3.6, 70 68 bytes

r=range(1,10)
for b in r:print(*[f"{a}x{b}={a*b:<2}"for a in r[:b]])

Try it online!

\$\endgroup\$
2
  • \$\begingroup\$ I had not seen Daniel's Answer before submitting this, but credit to him for the original implementation of this idea. \$\endgroup\$
    – GarethPW
    Jul 9, 2017 at 21:09
  • 1
    \$\begingroup\$ 68 bytes \$\endgroup\$
    – ovs
    Jan 31, 2018 at 19:31
0
\$\begingroup\$

Yabasic, 101 bytes

Anonymous function that takes no input and prints a multiplication table to the console.

For y=1To 9
For x=1To 9
If(x<=y)Then
?Left$(Str$(x)+"x"+Str$(y)+"="+Str$(x*y)+"  ",7);
Fi
Next
?
Next

-3 bytes for the use of Fi over EndIf

Try it online!

\$\endgroup\$
0
\$\begingroup\$

JavaScript, 70 characters

for(s=i='';i++<9;s+='\n')for(j=0;j++<i;s+=j+'×'+i+'='+j*i+' ');alert(s)

Respecting alignment, 83 characters:

for(s=i='';i++<9;s+='\n')for(j=0;j++<i;s+=j+'×'+i+'='+j*i+(j*i>9?' ':'  '));alert(s)

\$\endgroup\$
0
\$\begingroup\$

Excel VBA, 82 Bytes

Anonymous VBE immediate window function that takes no input and outputs to the VBE immediate window.

For y=1To 9:For x=1To 9:?IIf(x>y,"",Left(x &"x"&y &"=" &x*y &"  ",7));:Next:?:Next
\$\endgroup\$
0
\$\begingroup\$

Stax, 18 bytes, (17 chars, UTF-8)

9mc{b"`n×` =`*"mJ

Run and debug it

can't be compressed due to the unicode requirement. a 16 may be possible if I can find a way to compress it. 14 if using x is allowed.

\$\endgroup\$
1 2
3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.