A sequência de Fibonacci é uma coisa bastante conhecida por aqui. Heck, ele ainda tem sua própria etiqueta. No entanto, por tudo isso, com certeza gostamos de manter nossas raízes 1, 1, ...
(ou é 0, 1, ...
? Talvez nunca saibamos ...). Neste desafio, as regras são as mesmas, mas, em vez de obter o n
th item na sequência Fibonacci, você receberá o n
th item na sequência Fibonacci-esque, começando com x, y, ...
.
Entrada
Três números inteiros, na ordem que você desejar. n
é o índice (0 ou 1 indexado) do termo na sequência para sua saída. x
e y
são os dois primeiros itens na sequência Fibonacci da execução do programa atual.
Saída
O n
th prazo na sequência de Fibonacci começando com x
, y
.
Casos de teste
(Indexado 0)
n x y out
5 0 0 0
6 0 1 8
6 1 1 13
2 5 5 10
10 2 2 178
3 3 10 23
13 2308 4261 1325165
0 0 1 0
1 0 1 1
(Indexado 1)
n x y out
6 0 0 0
7 0 1 8
7 1 1 13
3 5 5 10
11 2 2 178
4 3 10 23
14 2308 4261 1325165
1 0 1 0
2 0 1 1
Ressalvas
Suponha 0 <= x <= y
.
Observe sua ordem de entrada (deve ser constante).
[1, 2, 3]
? Sim. Tudo o que você precisa para aceitar 3 números inteiros.n,[x,y]
onden
está um número e /x
ouy
são números em uma lista? Isso provavelmente está sendo um pouco demasiado flexível embora;)Respostas:
Gelatina , 3 bytes
Toma x , y , e n (0-indexada) como argumentos de linha de comando separadas, em que ordem.
Experimente online!
Como funciona
fonte
CJam ,
149 bytesExperimente online!
O formato de entrada é "xy n". Eu ainda sou um novato nisso, então tenho 100% de certeza de que existem maneiras melhores de fazer isso, mas, por favor, em vez de me dizer "faça isso", tente apenas me dar dicas para que eu possa encontrar a resposta e obter Melhor. Obrigado!
fonte
ririri
pode ser reduzido para 2 bytes.fI
pode ser reduzido para 1 byte.Python 2 , 37 bytes
Experimente online!
Indexado a 0, pode ser necessário ajustar o limite de recursão para
n≥999
fonte
JavaScript (ES6),
2726 bytesNada sofisticado aqui, apenas uma função JS Fibonacci padrão com os valores iniciais de 0 e 1 removidos.
Tente
fonte
Python 2, 40 bytes
0-indexado
Experimente online
fonte
Haskell , 30 bytes
Experimente online! Indexado a 0. Use como
(x#y)n
, por exemplo,(0#1)5
para o quinto elemento da sequência original.A maneira mais provável de obter a sequência de Fibonacci em Haskell é a
f=0:scanl(+)1f
que define uma lista infinita quef=[0,1,1,2,3,5,8,...]
contém a sequência. Substituindo0
e1
por argumentosx
ey
produz a sequência customizada.(f!!)
é então uma função retornando o enésimo elemento def
.fonte
Mathematica, 36 bytes
entrada
fonte
##2
vez de#2,#3
.PowerShell , 40 bytes
Experimente online!
fonte
Flak cerebral , 38 bytes
Experimente online!
fonte
Ruby, 27 bytes
fonte
Gelatina , 6 bytes
Experimente online!
Explicação
fonte
TAESGL , 4 bytes
Indexado 1
Intérprete
Explicação
Entrada tomada como
n,[x,y]
fonte
Prolog (SWI) , 77 bytes
Experimente online!
Começou a jogar a resposta de Leaky Nun e chegou a algo completamente diferente.
Este tem uma regra
(Nᵗʰ, (N+1)ᵗʰ)
em termos de((N-1)ᵗʰ, Nᵗʰ)
e usa gerenciamento de banco de dados para declarar elementos 0ˢᵗ e 1ˢᵗ em tempo de execução.f(N,X,Y)
significaNᵗʰ
elemento éX
e(N+1)ᵗʰ
elemento éY
.fonte
Oitava , 24 bytes
Formato de entrada:
n,[x,y]
.Experimente online!
fonte
Braingolf , 15 bytes
_;
não é mais necessário na versão mais recente do Braingolf, no entanto, a partir de ~ 5 minutos atrás, seria incompatível.fonte
Python 2 , 112 bytes
1 indexado.
Experimente online!
fonte
MATL , 7 bytes
A saída é baseada em 0.
Experimente no MATL Online!
Explicação
Deixe a entradas ser denotado
n
(índice),a
,b
(condições iniciais).fonte
R, 39 bytes
Uma função recursiva simples. Curiosamente, isso é mais curto do que qualquer coisa que eu possa criar para a sequência regular de Fibonacci (sem embutidos), porque isso não precisa ser atribuído
1
a ambosx
ey
= PCalcula os
n+1
números da sequência, incluindo os valores iniciais. Cada recursão é calculada comn-1
e interrompida quandon==0
. O menor dos dois números é retornado, retornando on
-ésimo valor.fonte
dc , 36 bytes
Experimente online!
0
-indexed. A entrada deve estar no formaton x y
.fonte
PHP> = 7.1, 55 bytes
Versão Online
PHP> = 7.1, 73 bytes
Versão Online
fonte
$y=+$x+$x=$y
. Além disso, você pode usar apenas em$n--
vez de$i++<$n
.Lisp comum, 49 bytes, indexado 0
Eu sou um Lisp noob, então qualquer dica seria apreciada;)
Explicação:
fonte
Prolog (SWI) , 85 bytes
Experimente online!
Indexado a 0.
fonte
br ** nfuck,
3929 bytesObrigado a @JoKing por -10!
O TIO não funcionará particularmente bem para isso (ou para qualquer solução BF para um problema que envolva números). Eu sugiro fortemente o EsotericIDE de Timwi (ou a implementação do BF você mesmo).
Leva
x
, entãoy
, entãon
. Indexado a 0. Pressupõe uma fita sem limites ou envolvente.Explicação
fonte
-1
indexação".>
para o final ou trocar x e y fimC (gcc) , 29 bytes
Experimente online!
Esta implementação é baseada em 0.
fonte
05AB1E , 9 bytes
Experimente online!
Explicação
fonte
Lua, 44 bytes
0-Indexed
Try it online!
fonte
Klein, 18 + 3 bytes
This uses the
000
topologyPass input in the form
x y n
.fonte
Axiom,
8857 bytesthis would pass the test proposed (0 indexed)
fonte
Retina, 37 bytes
Try it online!
0-based, takes
x y n
separated by space. Calculates in unary.fonte
TI-Basic, 32 bytes
fonte