Деление без использования арифметического оператора - PullRequest
2 голосов
/ 03 ноября 2019

Я пытаюсь создать программу, которая выполняет INTEGER деление между двумя числами. Особенность заключается в том, что эта программа будет использовать только оператор приращения ++ или декремента -- и циклы для выполнения деления.

int quotient = 0; 
while (num1 >= num2) 
{ 
   num1 = num1 - num2 ; 
   quotient++ ; 
} 

В приведенном выше сегменте кода я использую оператор -, где я хочу использовать только ++ или -- (т. Е. Без арифметического оператора, кроме увеличения / уменьшения) для достиженияделение между двумя числами.

Ответы [ 2 ]

4 голосов
/ 03 ноября 2019

Вместо того, чтобы вычитать num2 из num1 с помощью оператора -, добавьте еще один цикл, который будет выполняться с 1 до num2 и уменьшит num1 на 1, используя num1 -

Это будет работать:

int quotient = 0; 
while (num1 >= num2) 
{ 
   for(int i=1;i<=num2;i++){
        num1--;
   }
   quotient++; 
} 
3 голосов
/ 03 ноября 2019

Напишите функцию, которая реализует вычитание, используя только --

int subtract(int a, int b);  // returns a-b

Затем используйте ее вместо встроенной operator-:

int quotient = 0; 
while (num1 >= num2) 
{ 
   num1 = subtract(num1,num2); 
   quotient++ ; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...