How to write a C program for multiplication without using the * and + operators? Is it possible to write a C program that multiplies two numbers without using the multiplication and addition operators?


I found this on Stack&nbsp;Overflow. Please help this poor programmer with his problem. And please don't give answers like c = a/(1/((float)b)), which is exactly the same as c = a*b. (And is already given as an answer.)

The answer with the most upvotes on January 19th 2014 wins.

Note: This is a code-trolling question. Please do not take the question and/or answers seriously. More information is in code-trolling.
Always use recursion

Recusion is the right way!

int inc(int x) {
    return x&amp;1?inc(x&gt;&gt;1)&lt;&lt;1:x|1;
}

int dec(int x) {
    return x&amp;1?x^1:dec(x&gt;&gt;1)&lt;&lt;1|1;
}

int add(int x, int y) {
    return x?add(dec(x),inc(y)):y;
}

int mul(int x, int y) {
    return x?x^1?add(y,mul(dec(x),y)):y:0;
}

int main() {
    int a, b;
    scanf("%i\n%i", &amp;a, &amp;b);
    printf("%i", mul(a,b));
}