I recently pointed a student doing work experience to an article about dumping a multiplication table to the console. It used a nested for loop and multiplied the step value of each.
This looked like a .NET 2.0 approach. I was wondering, with the use of Linq and extension methods,for example, how many lines of code it would take to achieve the same result.
Is the stackoverflow community up to the challenge?
The challenge: In a console application, write code to generate a table like this example:
01 02 03 04 05 06 07 08 09 02 04 06 08 10 12 14 16 18 03 06 09 12 15 18 21 24 27 04 08 12 16 20 24 28 32 36 05 10 15 20 25 30 35 40 45 06 12 18 24 30 36 42 48 54 07 14 21 28 35 42 49 56 63 08 16 24 32 40 48 56 64 72 09 18 27 36 45 54 63 72 81
As this turned into a language-agnostic code-golf battle, I'll go with the communities decision about which is the best solution for the accepted answer.
There's been alot of talk about the spec and the format that the table should be in, I purposefully added the 00 format but the double new-line was originally only there because I didn't know how to format the text when creating the post!
Scala -
775958 charsSorry, I had to do this, the Scala solution by Malax was way too readable...
[Edit] For comprehension seems to be the better choice:
[Edit] A much longer solution, but without multiplication, and much more obfuscated:
C#, 135 chars, nice and clean:
XQuery 1.0 (96 bytes)
Run (with XQSharp) with:
K - 12 characters
Let's take the rosetta-stoning seriously, and compare Kdb+'s K4 with the canonical J solution (
*/~1+i.9
):J's "table" operator (
/
) equals the K "each-left each-right" (/:\:
) idiom. We don't have J's extremely handy "reflexive" operator (~
) in K, so we have to passa
as both left and right argument.Brainf**k - 185 chars
F# - 61 chars:
If you prefer a more applicative/LINQ-y solution, then in 72 chars: