Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

C++ Exercises: Divide two integers without using multiplication, division and mod operator

C++ Math: Exercise-4 with Solution

Write a C++ program to divide two integers (dividend and divisor) without using multiplication, division and mod operator.

Sample Solution:

C++ Code :

#include <iostream>
using namespace std;
int divide_result(int dividend_num, int divisor_num) {
       if (dividend_num == INT_MIN && divisor_num == -1)
       {
           return INT_MAX;
       }
       bool minus = ((dividend_num > 0) ^ (divisor_num > 0));
       long long num = labs(dividend_num);
       long long div = labs(divisor_num);
       int ans = 0;
       while (num >= div)
       {
           long long temp = div;
           long long mul = 1;
           while(num >= (temp << 1))
           {
               mul <<= 1;
               temp <<= 1;
           }
           ans += mul;
           num -= temp;
       }
       return minus ? -ans: ans;
   }
int main(void)
{
   int dividend_num = 7;
   int divisor_num = 2;
   cout << "\nDividend " << dividend_num << " Divisor " << divisor_num << endl;
   cout << "Result: " << divide_result(dividend_num, divisor_num) << endl;
   dividend_num = -17;
   divisor_num = 5;
   cout << "\nDividend " << dividend_num << " Divisor " << divisor_num << endl;
   cout << "Result: " << divide_result(dividend_num, divisor_num) << endl;
   dividend_num = 35;
   divisor_num = 7;
   cout << "\nDividend " << dividend_num << " Divisor " << divisor_num << endl;
   cout << "Result: " << divide_result(dividend_num, divisor_num) << endl;
   return 0;
}

Sample Output:

Dividend 7 Divisor 2
Result: 3
Dividend -17 Divisor 5
Result: -3
Dividend 35 Divisor 7
Result: 5

Flowchart:

Flowchart: Divide two integers without using multiplication, division and mod operator.

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to reverse the digits of a given integer.
Next: Write a C++ program to calculate x raised to the power n (xn).

What is the difficulty level of this exercise?