How to write a C program for multiplication without using the * and + operators?
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));
}