Escreva uma função recursiva que determine quantas vezes um dígito K ocorre em um número natural N . Por exemplo, o dígito 2 ocorre 3 vezes em 762021192.
Passo 1
Resumo do enunciado: queremos uma função recursiva que, dados um número natural N e um dígito K, retorne quantas vezes K aparece em N. O conteúdo é recursão simples sobre dígitos de um número.
Passo 2
Identificação do caso base: quando N for 0, não há mais dígitos para verificar. Nesse ponto, se K for 0 e estivermos contando no número original 0, a resposta é 1; caso contrário, é 0.
Passo 3
Passo recursivo principal: para N > 0, extraímos o último dígito usando N mod 10. Comparamos esse dígito com K. Se forem iguais, somamos 1; se não, somamos 0. Em seguida, chamamos recursivamente a função com ⌊N/10⌋, ou seja, o número sem o último dígito.
Passo 4
Tratamento fim da recursão: a cada chamada recursiva, N diminui (dividido por 10), garantindo que eventualmente cheguemos ao caso base N = 0 e a recursão termine.
Passo 5
Pseudocódigo da função recursiva:
função contaDigito(N, K):
se N = 0 então
se K = 0 então
retorne 1
senão
retorne 0
fim se
dígito ← N mod 10
resto ← N // 10
conta ← contaDigito(resto, K)
se dígito = K então
retorne conta + 1
senão
retorne conta
fim se
fim função
Resposta
A função recursiva contaDigito(N, K) acima retorna o número de ocorrências do dígito K em N.