Olá professor / monitor.
Eu estou com algumas dúvidas.
- Como posso fazer para achar o número de divisões? Se eu fizer subtrações sucessivas, cada subtração eu devo somar 1 até quando a primeira conta aparecer um número negativo. Pensei em usar um long double, mas se eu tiver um numero de 50 digitos e dividir por 1, então ultrapassaria 80 bits.
- No "resto da divisão" estou tendo problemas quando o primeiro número é negativo. Exemplo: -123456708912345678901234567890 % 12304567089123405123000. Para os outros fiz normalmente. Porém o raciocínio análogo não está funcionando. O código "modificado":
if(num1[0] > 0 && num2[0] > 0)
{
chama uma outra função aqui*
}
else if(num1[0] > 0 && num2[0] < 0)
{
num2[0] *= -1;
chama uma outra função aqui*
num2[0] *= -1;
}
else if(num1[0] < 0 && num2[0] < 0)
{
num2[0] *= -1;
num1[0] *= -1;
chama uma outra função aqui*
num2[0] *= -1;
num1[0] *= -1;
resto[0] *= -1;
}
else
{
num1[0] *= -1;
chama uma outra função aqui*
num1[0] *= -1;
}
* - Uma função que apenas faz subtrações de forma recursiva.
- O maior problema q estou é na multiplicação. Se na função multiplica digito eu tiver um k maior que 4, então o INT já é estourado. Qual o melhor jeito de resolver isso?
Obrigado
"- Como posso fazer para achar o número de divisões? Se eu fizer subtrações sucessivas, cada subtração eu devo somar 1 até quando a primeira conta aparecer um número negativo. Pensei em usar um long double, mas se eu tiver um numero de 50 digitos e dividir por 1, então ultrapassaria 80 bits."
Não sei se estou entendendo... Em vez do "número de divisões", o que você quer achar é o "número de subtrações" quando estiver fazendo uma divisão por subtrações sucessivas, certo? Você inicializa o "quociente parcial" com zero. A cada subtração (enquanto o resultado da subtração não for negativo) você soma 1 ao "quociente parcial", certo?
Não quarde o quociente parcial (o valor ao qual você vai somar 1 em cada volta) num int, nem num long, nem num long double! Guarde-o como um "inteiro grande" (vetor de ints)!!! E toda vez que você tiver que somar 1 ao quociente parcial, use a função soma1. É para isso que ela existe!
Não sei se estou entendendo... Em vez do "número de divisões", o que você quer achar é o "número de subtrações" quando estiver fazendo uma divisão por subtrações sucessivas, certo? Você inicializa o "quociente parcial" com zero. A cada subtração (enquanto o resultado da subtração não for negativo) você soma 1 ao "quociente parcial", certo?
Não quarde o quociente parcial (o valor ao qual você vai somar 1 em cada volta) num int, nem num long, nem num long double! Guarde-o como um "inteiro grande" (vetor de ints)!!! E toda vez que você tiver que somar 1 ao quociente parcial, use a função soma1. É para isso que ela existe!
Professor, muito obrigado!
Eu não tinha enxergado isso pela função soma1.
Obrigado
Marlon
Eu não tinha enxergado isso pela função soma1.
Obrigado
Marlon
"Se na função multiplica digito eu tiver um k maior que 4, então o INT já é estourado. Qual o melhor jeito de resolver isso?"
Usando um "inteiro grande" (vetor de ints) em vez de um int.
Usando um "inteiro grande" (vetor de ints) em vez de um int.