Olá a todos, boa noite! sou novo no forum, e desde já peço desculpas caso essa pergunta já tenha sido respondida em outro tópico.
Bom o caso é o seguinte, estou no II Semestre do curso de Sistemas de informação (Na verdade o semestre nem começou kkkk) entretanto to ainda com um pouco de dificuldade em criar funções recursivas. Eu estava resolvendo umas questões da ultima prova da unidade que eu fiz, e me ocorreu que uma das questões que eu praticamente tinha certeza que estava certa, esta dando a saída errada.
Eu deveria criar uma função recursiva que recebesse um numero decimal e convertesse o mesmo para binário.
meu codigo ficou assim:
/* função recebe um numero decimal inteiro positivo e verifica se o numero é menor que 2, caso seja ela ira retornar o valor da variável (0 ou 1),
se o numero não for menor que 2, ela irá imprimir o valor da variavel mod 2 e retornar de modo recursivo o valor da decimal dividido por 2.
O erro ocorre porque o valor mostrado como resultado fica invertido, por exemplo se o valor for 1010 (base 2) ele aparece 0101(base 2)
Pergunta
Lucas.San.tana
Olá a todos, boa noite! sou novo no forum, e desde já peço desculpas caso essa pergunta já tenha sido respondida em outro tópico.
Bom o caso é o seguinte, estou no II Semestre do curso de Sistemas de informação (Na verdade o semestre nem começou kkkk) entretanto to ainda com um pouco de dificuldade em criar funções recursivas. Eu estava resolvendo umas questões da ultima prova da unidade que eu fiz, e me ocorreu que uma das questões que eu praticamente tinha certeza que estava certa, esta dando a saída errada.
Eu deveria criar uma função recursiva que recebesse um numero decimal e convertesse o mesmo para binário.
meu codigo ficou assim:
/* função recebe um numero decimal inteiro positivo e verifica se o numero é menor que 2, caso seja ela ira retornar o valor da variável (0 ou 1),
se o numero não for menor que 2, ela irá imprimir o valor da variavel mod 2 e retornar de modo recursivo o valor da decimal dividido por 2.
O erro ocorre porque o valor mostrado como resultado fica invertido, por exemplo se o valor for 1010 (base 2) ele aparece 0101(base 2)
*/
int binario (int decimal)
{
if (decimal < 2)
{
return decimal;
}else {
cout<<decimal%2;
return binario(decimal/2);
}
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.