Dividing number without operator can be implemented in two approaches - loop and bit operation
Example 1) divide based in loop
#include <iostream> int divideWithoutOperator(int dividend, int divisor) { // Handle division by zero or cases where the dividend is smaller than the divisor if (divisor == 0 || dividend < divisor) return 0; int quotient = 0; while (dividend >= divisor) { dividend -= divisor; quotient++; } return quotient; } int main() { int dividend, divisor; std::cout << "Enter dividend: "; std::cin >> dividend; std::cout << "Enter divisor: "; std::cin >> divisor; int result = divideWithoutOperator(dividend, divisor); std::cout << "Result: " << result << std::endl; return 0; }
Example 2) divide based in bit oeration
#include <iostream> int divideWithoutOperator(int dividend, int divisor) { // Handle division by zero if (divisor == 0) return INT_MAX; // Return maximum representable integer value // Handle division by 1 if (divisor == 1) return dividend; // Handle division by -1 if (divisor == -1) { // Check for overflow when dividing INT_MIN by -1 if (dividend == INT_MIN) return INT_MAX; return -dividend; } // Determine the sign of the result bool isNegative = (dividend < 0) ^ (divisor < 0); // Convert both dividend and divisor to positive values to simplify the calculation unsigned int uDividend = abs(dividend); unsigned int uDivisor = abs(divisor); int quotient = 0; while (uDividend >= uDivisor) { int shift = 0; while (uDividend >= (uDivisor << shift)) shift++; shift--; uDividend -= (uDivisor << shift); quotient += (1 << shift); } return isNegative ? -quotient : quotient; } int main() { int dividend, divisor; std::cout << "Enter dividend: "; std::cin >> dividend; std::cout << "Enter divisor: "; std::cin >> divisor; int result = divideWithoutOperator(dividend, divisor); std::cout << "Result: " << result << std::endl; return 0; }