Multiply without multiplying, without loops either Make a function, method, program or routine that will accept two interger parameters (say x and y) and the total of the two values multiplied. Except straight multiplication is not allowed so you must not simply do something like:

int multiply (int x, int y) {
    return x*y;
}


Also you must not use a for () loop, like this:

int multiply (int x, int y) {
    int z = 0;
    for (int i = 0;i &lt; y; i++){
        z += x;
    }
    return z;
}


Everything else is up to you. A winner is you with the most compact solution.
Mathematica, 12 bytes

Exp@*Tr@*Log


Pure function taking a list of numbers (even complex numbers) as input and returning a number. Takes the logarithm of all the numbers in the list, adds them together, and exponentiates the result. Rules of exponents and logarithms ftw! (And because Mathematica calculates Log[0] as -∞ and can subsequently manipulate that symbolically, it arrives at the correct answer if one input number equals 0.)

Mathematica, 24 bytes

Tr[1^Flatten@Array[,#]]&amp;


Pure function taking a list of nonnegative (unfortunately) integers as input and returning their product. Simply creates an array of the appropriate dimensions and counts the number of entries (using Tr[1^...] as a golfy shorthand for Length@...). Since we don't care what's actually in the array, we can fill it with Nulls using Array[,#], which doesn't cost any bytes for the first argument.