Como ocorreu no ano passado, este ano teremos uma provinha de programação (Developer Quiz) como parte do processo de inscrições para o Google Developer Day 2011 em São Paulo. O formato desse ano será similar (mas não idêntico) ao do ano passado. Esperamos que se divirta!

A título de aquecimento, que tal revermos a provinha de 2010? Foram cinco questões sobre lógica de programação no espírito do Google Code Jam, isto é, as questões não exigiam conhecimento sobre nenhuma linguagem de programação ou ambiente específico. Nas questões teóricas, o código foi apresentado na forma de uma pseudo-linguagem de fácil entendimento e nas questões que exigiam a computação de um resultado, todos tiveram a liberdade de utilizar sua linguagem ou ferramenta predileta.

Cada participante recebeu perguntas diferentes, portanto se você respondeu ao Developer Quiz no ano passado, poderá notar que os exemplos que apresentaremos aqui provavelmente não correspondem exatamente às perguntas a que você respondeu, mas traduzem o mesmo conceito.

Na primeira questão, perguntamos o que um certo programa (dado na forma de pseudocódigo) imprimia:

x = 7
y = 0
se y > 8 então
   y = y * 2
caso contrário,
   x = x * 2
imprime (x + y)

Na segunda questão, perguntamos quantas vezes um determinado trecho de pseudocódigo imprime a string "oi":

para i = 1 até 7
   se i != 4, então
      para j = 1 até 5
         imprime 'oi'

(obs: na nossa pseudo-linguagem, o laço inclui os extremos, ou seja, 1 até 4 significa 1, 2, 3, 4.)

Em seguida, fizemos uma pergunta que podia ser resolvida através de um programa ou utilizando somente a matemática:

Entre 1065 and 4395 (inclusive), quantos números são pares e também divisíveis por 7?

A quarta questão foi um pouco mais trabalhosa e exigiu um pouco de programação ou o uso um pouco mais avançado de ferramentas de planilha, pois consistiu em contar as ocorrências de números com certas características dentro de um intervalo:

Isabela é uma menina que vê um senso estético na matemática. Para ela, um número é bonito se ele contém o dígito 6 mas não o dígito 1. Então, na opinião dela, quantos números bonitos existem entre 14614 e 26601, incluindo os extremos?

A última questão foi a mais trabalhosa de todas, e vinha com uma história sobre um lugar fictício e suas regras bastante peculiares para números de telefone:

No curioso condado de Arquivonaoencontradoshire, todos os telefones têm 6 dígitos. A companhia telefônica estabelece as seguintes regras sobre os números:


  1. Não pode haver dois dígitos consecutivos idênticos, porque isso é chato;
  2. A soma dos dígitos tem que ser par, porque isso é legal;
  3. O último dígito não pode ser igual ao primeiro, porque isso dá azar.

Então, dadas essas regras perfeitamente razoáveis, bem projetadas e maduras, quantos números de telefone na lista abaixo são válidos?

A pergunta vinha acompanhada de uma lista de números, que não vamos reproduzir aqui, mas que pode ser baixada a partir deste arquivo.

Já que as inscrições do Google Developer Day 2011 estão chegando, que tal fazer um aquecimento? Você consegue resolver essas questões? Atenção: esse exercício é só para diversão e não conta nenhum ponto para as inscrições de 2011.

Ficamos muito felizes com o entusiasmo de todos por esse evento nos anos anteriores e estamos trabalhando para fazê-lo cada vez melhor! Para saber as últimas novidades, não deixe de nos seguir no nosso canal para desenvolvedores brasileiros: @googledevbr.