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.

Exercícios relacionados