Aula 2.23 - Exercício 2 sobre recursividade.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s640/ltcode.jpg)
Se você conseguiu fazer a atividade anterior, essa será fácil.
Um problema típico em computação consiste em converter um número da sua forma decimal para a forma binária. Por exemplo, o número 12 tem a sua representação binária igual a 1100. A forma mais simples de fazer isso é usando o método das divisões sucessivas: divide-se o número sucessivamente por 2, onde o resto da i-ésima divisão vai ser o dígito i do número binário (da direita para a esquerda).
Por exemplo:
12/2 = 6 e tem resto 0
6/2 = 3 e tem resto 0
3/2 = 1 e tem resto 1
1/2 = 0 e tem resto 1
Sendo assim, 12 em binário equivale a: 1100 (restos tomados de baixo para cima).
Agora escreva uma função recursiva que, dado um número decimal, imprima a sua representação binária corretamente. A assinatura da função deverá, obrigatoriamente, ser: void dec2bin(int dec);
Não será permitido utilizar variáveis globais, vetores, listas ou qualquer outra estrutura de dados para armazenar o número em binário, pois este será impresso à medida que for sendo calculado dentro da função.
Recomendo tentar antes de ver a resposta abaixo:
~
~~
~~~
~~~~
~~~~~
Resolução:
Bem simples, a recursividade está na linha 16.
>> Próxima aula, clique aqui.
COMENTÁRIOS