Aula 2.22 - Exercício 1 sobre recursividade.
Nossas listas de exercícios em C fizeram sucesso, portanto vamos dar continuidade as aulas de C com a resolução de pequenos exercícios. Abaixo você acompanha a resolução de um exercício.
A função a seguir recebe como parâmetro um número inteiro N e retorna o número de dígitos de N:
Agora reescreva a função acima de forma que ela seja recursiva. Note que a assinatura da função deverá ser exatamente como está acima: int Digitos(int N);
Mas o que é recursividade? "...é a definição de uma função que pode invocar a si mesma."
Então vai uma dica, retire o loop while e faça a função ficar em loop chamando ela mesma até ter terminado de contar os dígitos.
Recomendo tentar antes de ver a resposta abaixo:
~
~~
~~~
~~~~
~~~~~
Resolução:
Dentro da função Digitos(), criamos uma variável "cont" para ser nosso contador, ou seja, sempre que N for maior ou igual a 10 nosso contador vai receber o valor atual mais o resultado (retorno) da chamada da função Digitos(), isso vai provocar a recursividade permitindo que o valor de "cont" seja retornado (return cont) para a função que o chamou, no caso Digitos() na linha 16.
>> Próxima aula, clique aqui.
COMENTÁRIOS