Multiplication tables: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: Abbreviated slightly with bool)
(Add (way overboard) Jsish)
Line 3,043: Line 3,043:
| 12 || || || || || || || || || || || || 144
| 12 || || || || || || || || || || || || 144
|}
|}

=={{header|Jsish}}==
<lang javascript>/* Multiplication tables, is Jsish */
var m, n, width, tableSize = 12;

if (console.args.length > 0) tableSize = parseInt(console.args[0]);
if (tableSize < 1 || tableSize > 20) tableSize = 12;

width = Math.floor(Math.log(tableSize * tableSize) / Math.log(10)) + 1;
var spaces = ' '.repeat(width+1);

printf(spaces);
for (m = 1; m <= tableSize; m++) printf(' %*d', width, m);
printf('\n' + ' '.repeat(width) + '+');
printf('-'.repeat((width+1) * tableSize));
for (m = 1; m <= tableSize; m++) {
printf('\n%*d|', width, m);
for (n = m; n < m; n++) printf(spaces);
for (n = 1; n <= tableSize; n++) {
if (m <= n) printf(' %*d', width, m * n); else printf(spaces);
}
}
printf('\n');</lang>

{{out}}
<pre>prompt$ jsish multiplication-tables.jsi
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

prompt$ jsish multiplication-tables.jsi 4
1 2 3 4
+------------
1| 1 2 3 4
2| 4 6 8
3| 9 12
4| 16</pre>


=={{header|Julia}}==
=={{header|Julia}}==