Para este código de golfe, você receberá uma entrada de uma sequência fib onacci, ou seja, uma sequência normal de Fibonacci, mas com um número incorreto. Veja, a sequência está mentindo ! Pegue?:D
Seu trabalho é descobrir qual número está incorreto e imprimir o índice (com base em 0) desse número.
Por exemplo:
Input : 1 1 2 9 5 8 13
Output: 3
Input : 8 13 21 34 55 80
Output: 5
Input : 2 3 5 5 13 21
Output: 3
Especificações:
- A sequência pode começar em qualquer número.
- Os dois primeiros números da entrada sempre estarão corretos.
- O código mais curto (contagem de caracteres) vence.
8
está incorreta porque ele não é igual9+5
Respostas:
GolfScript (18 caracteres)
A chave para manter isso curto é ? (encontrar).
fonte
~]:^,
J,
3023fonte
Golfscript,
3128262523fonte
APL (19)
Explicação:
k←⎕
: armazena a entrada do usuário emk
2+/k
: soma cada par de elementos emk
(ie1 1 2 3
->1+1 1+2 2+3
->2 3 5
)1↓1⌽k
: girek
para a direita 1 e depois solte o primeiro elemento (ou seja,1 1 2 3
->2 3 1
)≠
: encontre o local onde essas listas não são iguais1⍳⍨
: encontre a localização da primeira1
nesta lista (localização do número incorreto)1+
: adicione 1 para compensar o elemento descartadofonte
K, 32
fonte
dc,
3632dc
é uma calculadora polonesa reversa, portanto, obviamente, você precisa inserir os números na ordem inversa;)fonte
Javascript (
6968616055)(60)
(61)
(68)
(69)
fonte
JavaScript, 70
fonte
Ruby, 66
Minha primeira tentativa de um programa Ruby (um tanto) complicado:
fonte
gets.split
por$*
(ARGV
) para receber a entrada como argumentos da linha de comando, em vez de no fluxo de entrada padrão. O espaço entrep
e$*
também pode ser removido com segurança.Awk: 55
fonte
Python, 74
Eu tinha essa primeira solução, mas Doorknob respondeu à pergunta sobre o formato de entrada direito antes que eu tivesse tempo para postá-lo:
Python, 66
Pressupõe entrada separada por nova linha.
fonte
Matlab / Octave, 39 bytes
Agradecemos a Stewie Griffin por salvar um byte! (
-
instread of~=
)Esta é uma função anônima que insere uma matriz e gera um número.
Experimente online!
fonte
Python (90)
fonte
Mathematica 59
Como a entrada delimitada por espaço é necessária,
StringSplit
precisa ser empregada. O seguinte pressupõe que a entrada está na forma de uma sequênciai
.fonte
VB.net (77)
Supondo que os números já estejam em um IEnumerable (Of Integer).
fonte
Haskell, 48
fonte
JS, 52B
fonte
Gelatina , 11 bytes
Experimente online!
fonte
Kotlin , 77 bytes
Embelezado
Teste
fonte
QBIC , 31 bytes
Explicação
Não tenho certeza se isso é permitido; a sequência é inserida um termo por vez e o programa é interrompido por erro, não após a inserção de toda a sequência.
fonte