Étant donné N (2 <= N ), imprimez N lignes de la série des lettres Fibonacci comme ceci (c.-à-d. N = 5) Commencez par a
et b
:
a
b
Ensuite, ajoutez les deux lignes.
a
b
ab
Continuez à ajouter les deux dernières lignes.
a
b
ab
bab
Continue...
a
b
ab
bab
abbab
Et nous avons terminé.
Rappelez-vous, c'est le code-golf , donc le code avec le moins d'octets gagne.
Réponses:
Python 2, 41 octets
Enregistré 3 octets grâce à @xnor
Test sur Ideone
Suit simplement la définition récursive.
la source
a,b="ab";exec"print a;a,b=b,a+b;"*input()
.Haskell,
293532 octetsRécursivité simple.
Pour référence: l'ancienne version (une adaptation de cette réponse ), concaténait les chaînes dans le mauvais ordre, j'ai donc dû en ajouter une
flip(...)
qui la rendait trop longue (35 octets).la source
["b","a","ab","aba","abaab"]
05AB1E ,
1211 octetsMerci à Emigna d' avoir sauvé un octet!
Utilise l' encodage CP-1252 . Essayez-le en ligne!
la source
̓
pourrait tout aussi bien êtreG
que vous n'utilisez pasN
:)Gelée ,
1110 octetsEssayez-le en ligne!
Comment ça marche
la source
”a”b;@Ṅ
partie vers le bas, mais je ne savais pas où aller à partir de là ... maintenant je sais :-)Java 7, 69 octets
non golfé
la source
a
etb
. Je ne sais pas si les paramètres"a"
et"b"
doivent être pris en compte dans le nombre d'octets, car la question indique spécifiquement qu'il doit utilisera
etb
. Pas que Java gagnera de toute façon. ;)"a"
et"b"
) au lieu de 69 car le défi a spécifiquement demandé poura
etb
, et la méthode coupée de code / utilise actuellement une entrée variable. Je ne sais pas quelles sont les règles concernant quelque chose comme ça, mais je pense personnellement que cela devrait être compté. Sinon, vous pourriez dans certaines langues avoir une fonction qui exécute une fonction de paramètre, puis donner simplement la fonction de défi entière dans le paramètre sans compter ses octets. Cela ressemble à une règle de type échappatoire standard.Emacs,
26, 25 touchesProgramme
#nà lire comme clé avec chiffre (s) n :
ARETBRETF3UPUPC-SPACEC-EM-WDOWNDOWNC-Y UPC-AC-SPACEC-EM-WDOWNC-EC-YRETF4C-#(n-2)F4
Explication
Avec n = 10
la source
JavaScript (ES6),
4342 octetsUn octet enregistré grâce à @Arnauld
la source
CJam,
1917 octetsexplication
la source
p
devrait être a;
. Vous pouvez vous débarrasser des guillemets autour de la sortie si vous utilisezn
au lieu dep
. Enfin,'a'b
enregistre deux octets de plus"a""b"
.V , 18 octets
Essayez-le en ligne!
Ou, la version la plus lisible:
Explication:
la source
MATL , 14 octets
Essayez-le en ligne!
la source
Python 2, 55 octets
la source
Rétine , 33 octets
Essayez-le en ligne!
10 (!) Octets enregistrés grâce à @ MartinEnder !
Explication
Convertit l'entrée en unaire, soustrait
2
et ajoute lea
et leb
, puis remplace récursivement les1
s restants par la concaténation des deux chaînes précédentes.la source
$%`
! et cette autre capture était juste une mauvaise planification ... Incroyable, merci!Lot,
10293 octetsHeureusement, les variables sont développées pour chaque ligne avant que les affectations ne prennent effet, donc je peux définir les deux
a
etb
utiliser leurs anciennes valeurs sans avoir besoin d'un temporaire. Edit: 9 octets enregistrés grâce à @ nephi12.la source
for /l %%i in (2,1,%1) etc..
@set a=a&set b=b
que vous l'avez fait avec la dernière. bien que techniquement, ils pourraient tous être sur la même ligne ... mais ce serait moche ... hmm ...Stack my Golf, 63 octets
Obtenez ma langue ici: https://github.com/cheertarts/Stack-My-Golf .
Il y a probablement un chemin plus court mais c'est le plus évident.
la source
Perl,
3635 octetsComprend +3 pour
-n
Comptez sur STDIN
fibo.pl
la source
Perl, 45 +1 = 46 octets
+1 octet pour l'indicateur -n
Légère amélioration par rapport à la solution existante de 49 octets, mais développée séparément. Les parenthèses pour
say($a)
sont nécessaires car sinon, il interprète$a,($a,$b)=($b,$a.$b)
comme l'argument desay
qui génère plus d'ordure que nécessaire.Perl, 42 octets
Une approche distincte de la solution ci-dessus:
Je ne suis pas encore convaincu que je ne peux pas combiner la translittération et le remplacement en une seule opération plus courte. Si j'en trouve un, je le posterai.
la source
Swift 3, 76 octets
la source
Perl, 48 octets
Code de 47 octets + 1 pour
-n
.Une approche simple. Essayez d'utiliser une tranche de tableau à l'origine
$a[@a]="@a[-2,-1]"
mais cela nécessite$"=""
ou similaire :(. Économisez 1 octet grâce à @ Dada !Usage
la source
@;
au lieu de@a
afin que vous puissiez omettre le point-virgule final (voyez ce que je veux dire?). (Je sais, un octet est assez bon marché mais je n'ai pas eu de meilleure idée ..)perl -pe '@;=(a,b);$;[@;]=$;[-2].$;[-1]for 3..$_;say for@' <<< 5 syntax error at -e line 1, at EOF Execution of -e aborted due to compilation errors.
mais je ne pensais pas qu'il serait juste d'ajouter une réponse si je ne pouvais pas faites-le fonctionner!-pe
place de-nE
? Quoi qu'il en soit, cela fonctionne sur le mien, donc c'est probablement lié à votre version ou système Perl ... Mais croyez-moi, je l'ai testé et ça marche! ;)-nE
aussi (je ne sais pas d'où-pe
vient! Doit être vendredi ...) Je mettrai à jour cela quand j'aurai un mois! Merci d'avoir partagé!SOML , 8 octets (non concurrent)
explication:
La raison pour laquelle il n'y a pas de concurrence est que ce langage est toujours en développement et j'ai ajouté quelques nouvelles fonctions lors de l'écriture.
Aussi, 1er post sur PPCG!
la source
05AB1E, 15 octets
la source
C , 156 octets (sans retrait)
Deux tampons (u & v) stockent les deux dernières lignes. La ligne la plus récente (suivie avec deux pointeurs: début = c, fin = d) est ajoutée à la plus ancienne (début = a, fin = b). Permutez (a, b) et (c, d) et bouclez. Faites attention à la taille du tampon avant de demander trop de lignes. Pas si court (comme prévu pour un langage de bas niveau), mais c'était amusant à coder.
la source
5
mais il devrait être saisi par l'utilisateurGiven N (2 <= N), print N lines of the letter Fibonacci series like this (i.e. N = 5)
N
et non fixe. Ou l'utilisateur peut être quelqu'un qui utilise votre fonction / programme.PHP,
6362 octetsVersion récursive:
la source
return
Pyth , 17 octets
Un programme qui prend l'entrée d'un entier et imprime le résultat.
Essayez-le en ligne!
Comment ça marche
la source
Pyth -
1615 octetsEssayez-le en ligne ici .
la source
APL, 30 octets.
⎕IO
doit être1
.la source
Mathematica, 49 octets
Définit une fonction
g
prenant la seule entrée numérique; renvoie une liste de chaînes. Implémentation récursive simple à l'aide de l'opérateur de jonction de chaînes<>
.Mathematica, 56 octets
Fonction sans nom, même format d'entrée / sortie que ci-dessus. Cette solution utilise une autre manière de générer les chaînes: chaque chaîne de la liste est le résultat du remplacement simultané, dans la chaîne précédente, de toutes les occurrences de "a" par "b" et de toutes les occurrences de "b" par "ab".
la source
Groovy, 79 octets
la source
PHP, 53 octets
la source
$b
in the string.C++11,
8998 bytes+7 bytes for all lines, not only the last one. +2 bytes more for
N
being the number of lines printed, not some 0-based stuff.Usage:
la source
Ruby (1.9+) 46 bytes
la source