Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae galera!
Alguem sabe qual o algoritmo de divisao de numeros inteiros somente utilizando soma?
Essa seria a logica dos computadores certo?
Agradeço a atenção!
Abraços
bom c você quiser usar recursividade fica assim:
Função divisaoRec(inteiro num, inteiro den) retorna Inteiro
Inicio
Se(num < den)
Então
Função_Retorna(0);
Senão
Função_Retorna(divisaoRec(num-den, den) + 1);
Fim_SeValeu quitZAUMMM
Era isso mesmo!
Alguém sabe outra forma?
Obrigado
agora que eu não entendi mais nada.
para que serve essa função??
não faz nexo algum
alguém pode explicar?
Simples.A divisão pode ser feita com subtração p/ calcular o resto (que vai ser usado na divisao seguinte se for maior do que o divisor.Se for menor,entao o quociente é zero) e o quociente é calculado somando-se 1 ao resultado anterior.
Já que você pediu um outro jeito... Esse é o que aparece no livro de arquitetura de computadores do Henessy e Patterson.
int divisor,dividendo,resto;
leia divisor;
leia dividendo;
resto <- dividendo;
int quociente = 0;
int digitos = sizeof(int)*4 +1; // Limite para o loop = metade de uma word (em bits) + 1
int i=0;
// O divisor eh carregado na metade superior. P/ isso se usa deslocamento à esquerda
divisor = divisor << (sizeof(int)*4);
while(i<digitos) {
resto = resto - divisor;
if (resto>=0) {
quociente = quociente << 1;
quociente++;
} else {
resto = resto + divisor;
quociente = quociente << 1;
}
divisor = divisor >> 1;
i++;
}
printf("quociente: %d \t resto: %d\n",quociente,resto);http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
esse código usei qnd estudei recursividade na facu, guardei pq sabia q ia ser util um dia!
[]'s
como é isso?