4, 8, 15, 16, 23, 42
Escreva um programa que produz essa sequência de números infinitamente. No entanto, os números não devem aparecer no seu código-fonte em nenhum lugar.
O seguinte não é um programa Java válido para a saída do The Numbers porque o The Numbers aparece em seu código-fonte:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
A definição de "Os números não devem aparecer no seu código-fonte" é a seguinte:
- Você não deve usar o número 4.
- Você não deve usar o número 8.
- Você não deve usar o número 1 seguido pelo número 5.
- Você não deve usar o número 1 seguido pelo número 6.
- Você não deve usar o número 2 seguido pelo número 3.
Se seu idioma ignora certos caracteres que podem ser colocados entre os números, não é uma substituição válida. Por exemplo, se seu idioma interpreta o literal 1_5
como 15
, isso contará como o número 1 seguido pelo número 5.
Bases alternativas estão incluídas na restrição, por exemplo:
- O binário 100 não pode ser usado como um substituto para 4.
- O Octal 10 não pode ser usado como um substituto para 8.
- O hexadecimal F não pode ser usado como substituto de 15.
Portanto, a seguir, é um programa Java válido (mas não muito inspirado) para gerar saída do Numbers porque ele não aparece em seu código-fonte:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Observe que nesse programa, '*'
e '&'
são substituídos os números inteiros 42 e 38, porque, caso contrário, os números 4 e 8 apareceriam em seu código-fonte.
A definição de "gera a sequência infinitamente" está aberta à interpretação. Assim, por exemplo, um programa que gera glifos cada vez menores até serem "infinitamente" pequenos seria válido.
Parabéns se você é capaz de gerar a sequência de alguma forma que não é basicamente codificar cada número.
- Derivando-o a uma fórmula. Minha impressão é que não existe, mas talvez exista ou possa ser falsificado.
- Corrigindo um gerador pseudo-aleatório para retornar a sequência.
Este é um concurso de popularidade, então seja criativo. A resposta com mais votos em 26 de março é a vencedora.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
seria muito melhor do que isso This is a stupid question.
, mas essa é apenas a minha opinião pessoal.