Défi
Étant donné une séquence d'entiers non négatifs, créez une fonction qui génère une pyramide descendante où les enfants sont la somme des deux nombres parents.
Le résultat est affiché sous forme de chaîne à l'aide de tabulation \t
.
Remarque: les onglets de fin sur chaque ligne ne sont pas requis
1\t\t2\t\t3\n\t3\t\t5\t\n\t\t8\t\t results in
1 2 3
3 5
8
Le résultat peut éventuellement être sorti sous forme de tableau en utilisant une position vide comme espace.
[[1,,2,,3],
[,3,,5,],
[,,8,,]]
Exemple:
4,5,7,3,4,2
Sortie donnée :
4 5 7 3 4 2
9 12 10 7 6
21 22 17 13
43 39 30
82 69
151
Règles
- Les règles de code-golf standard s'appliquent
- L'entrée peut être une chaîne utilisant n'importe quel séparateur ou tableau
- Les sauts de ligne et les tabulations sont autorisés (mais non requis tant que la sortie est une pyramide inversée)
Cas de test
Input: 1,3,5
1 3 5
4 8
12
Input: 9,8,7,6,5
9 8 7 6 5
17 15 13 11
32 28 24
60 52
112
Input: 5,5,2,5
[[5,,5,,2,,5],
[,10,,7,,7,],
[,,17,,14,,],
[,,,31,,,]]
Input: 3,3,3
[[3,,3,,3],
[,6,,6,],
[,,12,,]]
Le critère de victoire est le golf de code
Remarque: ce défi est très proche du triangle de génération de Pascal . La différence est la séquence de démarrage personnalisée (pascal passe de 1 et en mode ascendant, ceci à partir d'une entrée et en mode descendant).
non-negative integers
devons-nous gérer0
? Il existe des possibilités de golf si les espaces vides sont remplis de0
s.Réponses:
APL (Dyalog Unicode) ,
3128 octets SBCSFonction de préfixe tacite. Utilise un seul espace comme marqueur de slot vide. Renvoie la liste des listes de nombres / espaces.
Essayez-le en ligne!
⍳∘≢{
...}¨⊂
appliquer la fonction ci - dessous pour chacun des⍳
les ɩ ndices∘
de≢
la concordance avec⊂
l'argument entier:⊢⍵
produire le bon argument (l'entrée d'origine)2+/⍣⍺
appliquer la somme par paire autant de fois que l'indique l'argument de gauche,∘' '¨
ajouter un espace à chaque numéro(
…),
Joignez cela à ce qui suit:⍺⍴''
éléments d'argument gauche de la chaîne vide (remplis d'espaces)∊
ϵ nlist (aplatir)la source
05AB1E , 15 octets
Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 74 octets
Essayez-le en ligne!
la source
Gelée ,
1413 octets14 -> 13 suppose que l'entrée des espaces de fin uniquement est autorisée dans la sortie du format de liste; sinon je reviendrai au 14 ( demandé )
Un lien monadique. La sortie est une liste de listes utilisant des caractères d'espace comme espaces (comprend une seule entrée d'espaces de fin uniquement).
Essayez-le en ligne! (inclut un pied de page pour afficher la structure de la liste car l'exécution du lien monadique en tant que programme complet imprimera implicitement la sortie détruite.)
la source
Husk , 22 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6), 73 octets
Code source bizarre ... Quoi qu'il en soit, c'est le code-golf !
Inclut les espaces blancs de début et de fin.
Essayez-le en ligne!
la source
Perl 5
-a
, 62 octetsEssayez-le en ligne!
la source
Python 3 ,
1019380 octetsEnregistrement de 7 octets (
map(str,x)
au lieu defor in
et init y as''
) et suppression des sauts de ligne (x and[
au lieu deprint(
), grâce à Jo King .Enregistré 13 octets (
[*map(sum,zip(x,x[1:]))]
au lieu de[x[j]+x[j+1]for j in range(len(x)-1)]
) grâce à ovs .Essayez-le en ligne!
la source
Rétine , 35 octets
Essayez-le en ligne! Explication:
Répétez jusqu'à ce que le tampon cesse de changer,
Imprimer le contenu du tampon avant la substitution, avec un retour à la ligne de fin, et
Remplacez un nombre unique par une paire d'onglets, mais un nombre suivi d'un autre nombre avec un onglet, la somme et un autre onglet.
la source
C (clang) , 112 octets
Essayez-le en ligne!
la source
putchar(9)
place deprintf("\t")
Rouge , 151 octets
Essayez-le en ligne!
Plus lisible:
la source
Perl 6 ,
5048 octetsEssayez-le en ligne!
Bloc de code anonyme qui prend une liste d'entiers et imprime la pyramide inversée.
la source
C # (Visual C # Compiler) , 163 octets
Essayez-le en ligne!
Lisible:
la source
Japt
-Rx
,2018 octetsLa deuxième ligne comprend un onglet de fin.
Essayez-le
Explication
la source