w3resource

C Exercises: Multiply two integers without using multiplication, division, bitwise operators, and loops

C Programming Mathematics: Exercise-20 with Solution

Write a C program to multiply two integers without using multiplication, division, bitwise operators, and loops.

Example 1:
Input: n1 = 50
Input: n2 = 12
Output: 600
Example 2:
Input: n1 = 0
Input: n2 = 12
Output: 0

Sample Solution:

C Code:

#include <stdio.h>

// Recursive function to multiply two integers 'a' and 'b'
int multiply_two_nums(int a, int b) { 
    /* 0 multiplied with anything gives 0 */
    if (b == 0)
        return 0; // Return 0 if 'b' is zero

    if (b > 0)
        return (a + multiply_two_nums(a, b - 1)); // Recursive call when 'b' is positive, using addition

    if (b < 0)
        return -multiply_two_nums(a, -b); // Recursive call when 'b' is negative, using recursion and negation

    return -1; // Return -1 for invalid inputs
} 

// Main function to test the multiply_two_nums function with different values
int main(void) {
    int n1 = 50;
    int n2 = 12;

    printf("\n %d x %d = %d", n1, n2, multiply_two_nums(n1, n2)); // Print the result of multiplication
    n1 = 0; 
    n2 = 12;

    printf("\n %d x %d = %d", n1, n2, multiply_two_nums(n1, n2)); // Print the result of multiplication

    return 0;    
}

Sample Output:

50 x 12 = 600
 0 x 12 = 0

Flowchart:

Flowchart: Multiply two integers without using multiplication, division, bitwise operators, and loops.

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a C program to find the square root of a number using Babylonian method.
Next: Write a C program to calculate and print average (or mean) of the stream of given numbers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.