Flashcard FC97729
Como contar quantas vezes um dígito aparece nas diferentes posições ao listar os números de 1 a n?
Conjuntos
CEBRASPE (CESPE) · 2023
Como contar quantas vezes um dígito aparece nas diferentes posições ao listar os números de 1 a n?
Mostrar resposta e comentário
Resposta
Contar por posição: para cada potência de 10, usar quociente e resto para ciclos completos e ocorrências extras.Explicação:
Para cada posição k (valor posicional \(10^k\)), calcule
• ciclos completos: \(\left\lfloor \dfrac{n}{10^{k+1}}\right\rfloor\), que geram \(\left\lfloor \dfrac{n}{10^{k+1}}\right\rfloor\cdot 10^k\) ocorrências;
• resto: \(r = n \bmod 10^{k+1}\). Ocorrências extras = \(\min\big(\max(r - d\cdot 10^k +1,0),\,10^k\big)\).
Some as total por posição: \(\text{ocorr}_k = \left\lfloor \dfrac{n}{10^{k+1}}\right\rfloor\cdot 10^k + \min\big(\max(r - d\cdot 10^k +1,0),\,10^k\big)\).
Exemplo:
Contar o dígito 3 de 1 a 250.
Unidades (k=0): ciclos = \(\left\lfloor\frac{250}{10}\right\rfloor=25\) → \(25\) ocorr.; resto \(r=250\bmod10=0\) → extra = \(\min(\max(0-3+1,0),1)=0\). Unidades = 25.
Dezenas (k=1): ciclos = \(\left\lfloor\frac{250}{100}\right\rfloor=2\) → \(2\cdot10=20\) ocorr.; resto \(r=250\bmod100=50\) → extra = \(\min(\max(50-30+1,0),10)=10\). Dezenas = 30.
Centenas e superiores não contribuem (intervalo 300–399 >250). Total = 25 + 30 = 55.
Veja como foi cobrado:
https://flashcardsconcursos.com.br/portal/flashcard/83712
Conteúdo do catálogo FC Concursos · Atualizado em