Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rhuan Lopes

[Resolvido] divisão por subtrações sucessivas

Recommended Posts

Boa tarde a todos, estou tentando fazer um exercício da minha faculdade que está valendo nota, mas estou com sérias dificuldades.

 

Segue o exercício:

 

Divisão através de subtrações sucessivas

 

O resultado da divisão inteira de um número inteiro por outro número inteiro pode

sempre ser obtido utilizando–se apenas o operador de subtração. Assim, se quisermos

calcular (7/2), basta subtrair o dividendo (2) ao divisor (7), sucessivamente, até que o

resultado seja menor do que o dividendo. O número de subtrações realizadas

corresponde ao quociente inteiro, conforme o exemplo seguinte:

7 - 2 = 5

5 - 2 = 3

3 - 2 = 1

Descrever um programa para o cálculo da divisão de um inteiro pelo outro.

Note que se o dividendo for zero, esta é uma operação matematicamente indefinida.

 

Meu código (que não está dando certo):

 

#include <iostream>
using namespace std;

void main()
{
   int divid, divis, resul, i;

   cout << "Entre com o dividendo: ";
   cin >> divid;

   cout << "Entre com o divisor: ";
   cin >> divis;

   resul = (divid - divis);

   for (i=0;i <= divid;i++)
   {
       (resul - divis);
   }

   cout << i;
}

 

Obs: Não reparem se tiver algum erro grotesco no código... rs... estou começando a programar agora.

 

Preciso de ajuda para conseguir resolver este exercício e entregá-lo ainda hoje... =/

 

Desde já agradeço a atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Você tem que fazer um loop que vá subtraindo o dividendo do divisor até ele ficar menor que o dividendo, e usar um contador para ir somando cada iteração...

 

Seria algo assim:

 

#include <iostream>

int main()
{
   int dividendo = 0, divisor = 0, contador = 0;

   for(;;)
   {
       std::cout << "Digite o divisor: ";
       std::cin >> divisor;
       std::cout << "Digite o dividendo: ";
       std::cin >> dividendo;

       if(!dividendo)
       {
           std::cout << std::endl << "DIVIDENDO INVÁLIDO!" << std::endl;
           continue;
       }

       break;
   }

   std::cout << std::endl << "O resultado de " << divisor << " dividido por " << dividendo << " é: ";

   for(contador = 0; dividendo < divisor; ++contador)
       divisor -= dividendo;

   std::cout << contador << std::endl;

   return 0;
}

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabou que consegui resolver essa questão com o algoritmo abaixo:

 

#include <iostream>
using namespace std;

void main()
{
int dvd, dvs, res, quo;

cout << "Entre com o dividendo: ";
cin >> dvd;

cout << "Entre com o divisor: ";
cin >> dvs;

for (quo=0;dvd >= dvs;quo=quo+1)
{
	res = dvd - dvs;
	dvd = res;
}

cout <<"O resultado da divisao e: " << quo << endl;
cout <<"O resto e: " << res << endl;

system ("pause");
}

 

Mesmo assim muito obrigado pela ajuda Renato Utsch !

 

Abraços,

Rhuan Lopes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.