Considere a seguinte tarefa de programação: "Dado um número inteiro positivo n como entrada, crie um laço while que utilize aritmética para armazenar a frequência de cada dígito presente em n em um dicionário frequency_map. O número de entrada n será fornecido como um tipo de dado numérico, não como uma string. Para cada iteração do laço, você deve atualizar frequency_map antes de reduzir n." Arraste os passos do pseudocódigo abaixo para organizá-los na ordem correta e criar uma solução válida para a tarefa acima.
Questão
Considere a seguinte tarefa de programação:
"Dado um número inteiro positivo n como entrada, crie um laço while que utilize aritmética para armazenar a frequência de cada dígito presente em n em um dicionário frequency_map. O número de entrada n será fornecido como um tipo de dado numérico, não como uma string. Para cada iteração do laço, você deve atualizar frequency_map antes de reduzir n."
Arraste os passos do pseudocódigo abaixo para organizá-los na ordem correta e criar uma solução válida para a tarefa acima.
Alternativas
dígito = n mod 10
se o dígito não estiver nas chaves do mapa de frequência
n = parte inteira de (n / 10)
caso contrário, adicione 1 ao valor do dígito em frequency_map.
enquanto n for maior que 0
Inicialize um dicionário vazio frequency_map
Adicionar dígito ao mapa de frequência com um valor inicial de 1
Explicação
Precisamos montar um laço while que conte a frequência de cada dígito de usando apenas operações aritméticas (sem converter para string).
Passo a passo lógico:
- Primeiro, criamos a estrutura que vai armazenar as contagens: um dicionário vazio
frequency_map. - Enquanto ainda houver dígitos para processar (isto é, enquanto ), repetimos.
- Em cada repetição, extraímos o último dígito com módulo 10: .
- Antes de reduzir , atualizamos o dicionário:
- Se o dígito ainda não existe como chave, inserimos com valor inicial 1.
- Caso já exista, incrementamos em 1.
- Só então removemos o último dígito de fazendo divisão inteira por 10: .
Essa ordem garante a condição do enunciado: atualizar frequency_map antes de reduzir n.
Alternativa correta: (f).