Contando zeros em sequências numéricas
Essa é uma daquelas perguntas que aparecem bastante em entrevistas técnicas e exercícios de olimíada de matemática. O enunciado simples: escreva todos os números de 0 até um certo limite e conte quantos zeros existem no total. Parece trivial até você chegar no 1.000 e perceber que a coisa cresce rápido demais pra contar na mão sem errar. Vou explicar o método prático primeiro, porque é mais útil do que a definição formal. A ideia central é analisar cada posição decimal separadamente. Zero na casa das unidades é diferente de zero na casa das dezenas, que é diferente de zero na casa das centenas. Cada posição tem regras próprias de quando aparece e com que frequência.
quantos zeros tem de 0 a 100
Esse é o caso mais comum que as pessoas perguntam. Vamos resolver juntos. De 0 a 100, temos os seguintes zeros: O número 0 em si conta como um zero. Depois, nas dezenas: 10, 20, 30, 40, 50, 60, 70, 80, 90 — são 9 zeros na posição das dezenas. Nas unidades, o número 100 dois zeros. No total: 1 + 9 + 2 = 12 zeros de 0 a 100.
Se você quiser ir até 200, o raciocínio se repete com pequenos ajustes. Cada bloco de 100 números contribui com 11 zeros (o zero do 0, mais os 9 das dezenas, mais o zero inicial do próximo bloco que já foi contado). Os zeros extras aparecem nos números como 101, 102... 109, que trazem zeros no meio. O problema real começa quando o limite sobe para 1.000 ou mais. Aí contar manualmente vira dor de cabeça e erro garantido. O padrão que funciona é este: para cada posição pos (unidades, dezenas, centenas etc.), divida o número limite por 10^(pos+1). O quociente diz quantos ciclos completos daquela posição aconteceram. O resto determina quantos zeros extras aparecem no ciclo incompleto.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Eu já perdi tempo tentando fazer isso de cabeça pra limites grandes. A regra prática que funciona é: para a posição das unidades, zeros aparecem a cada 10 números. Para a posição das dezenas, a cada 100. Para centenas, a cada 1.000. Você calcula quantas vezes cada ciclo cabe no seu limite e depois ajusta pelo resto. É mecânico, mas exige atenção com os casos de borda. Um detalhe que muita gente erra: o número 0 em si. Em muitas formulações do problema, ele não é incluído porque "não faz sentido contar o zero do zero". Outros incluem. Sempre verifique qual convenção o exercício ou a entrevista está usando. Eu já vi gente perder ponto por não esclarecer isso.
Outro ponto cego: zeros à esquerda não contam. O número 05 não existe na contagem normal — escrevemos apenas 5. Isso elimina uma fonte comum de confusão quando as pessoas tentam padronizar quantidades de dígitos. Se você precisa fazer isso com frequência, um script simples em Python resolve em segundos. Um laço que itera de 0 ao limite, converte cada número para string e conta os caracteres '0' é suficiente para limites razonáveis. Para limites maiores que 10 milhões, aí sim a abordagem matemática por posições é mais eficiente, pois evita criar milhões de strings na memória.
A versão matemática também tem sua limitação: ela conta zeros em todas as posições, mas em números com muitos dígitos o cálculo manual torna-se propenso a erro aritmético. Se você não tiver confiança pra calcular de cabeça, use código. Nada de orgulho aqui — resultados importam mais do que aparência. Para quem quer dominar o assunto de verdade, recomendo praticar com limites como 50, 100, 500, 1000, 5000 e 10000, comparando sempre o resultado manual com a saída de um programa. A discrepância entre o que você acha que é e o que realmente é é onde mora o aprendizado.