Multiplication tables

From Rosetta Code
Revision as of 06:19, 20 February 2021 by Drkameleon (talk | contribs)

Arturo

<lang rebol>mulTable: function [n][

   print ["    |"] ++ map 1..n => [pad to :string & 3]
   print "----+" ++ join map 1..n => "----"
   loop 1..n 'x [
       prints (pad to :string x 3) ++ " |"
       if x>1 -> loop 1..x-1 'y [prints "    "]
       loop x..n 'y [prints " " ++ pad to :string x*y 3]
       print ""
   ]

]

mulTable 12</lang>

Output:
|   1   2   3   4   5   6   7   8   9  10  11  12 
----+------------------------------------------------
  1 |   1   2   3   4   5   6   7   8   9  10  11  12
  2 |       4   6   8  10  12  14  16  18  20  22  24
  3 |           9  12  15  18  21  24  27  30  33  36
  4 |              16  20  24  28  32  36  40  44  48
  5 |                  25  30  35  40  45  50  55  60
  6 |                      36  42  48  54  60  66  72
  7 |                          49  56  63  70  77  84
  8 |                              64  72  80  88  96
  9 |                                  81  90  99 108
 10 |                                     100 110 120
 11 |                                         121 132
 12 |                                             144