Ok, j'ai été sur un coup de pied triangle récemment, alors voici un autre.
Le triangle de Clark est un triangle où l'entrée la plus à gauche de chaque ligne est 1 et les entrées les plus à droite sont composées de multiples de 6 qui augmentent à mesure que le nombre de lignes augmente. Voici une visualisation
1 6
1 . 12
1 . . 18
1 . . . 24
1 . . . . 30
1 . . . . . 36
Tout comme le triangle de Pascal, toutes les autres entrées sont la somme des nombres en haut à droite et en haut à gauche.
Voici les premières lignes remplies
1 6
1 7 12
1 8 19 18
1 9 27 37 24
1 10 36 64 61 30
1 11 46 100 125 91 36
Tâche
Étant donné un numéro de ligne (à partir du haut) et un numéro de colonne (à partir du premier élément différent de zéro sur cette ligne), affichez la valeur à cette cellule particulière. Les deux entrées peuvent être indexées 1 ou 0 (vous pouvez mélanger et assortir si vous le souhaitez). En dehors des limites du triangle n'est pas défini et vous pouvez faire ce que vous voulez lorsque vous êtes interrogé pour ces valeurs.
Il s'agit de code-golf , l'objectif est de minimiser le nombre d'octets dans votre solution.
Réponses:
MATL , 15 octets
La première entrée est une ligne basée sur 0; la deuxième est une colonne basée sur 1.
Essayez-le en ligne!
Explication
la source
Pascal , 132 octets
Essayez-le en ligne!
1 indexé.
la source
CJam ,
2218 octets-4 octets grâce à Martin Ender
L'entrée est
(0-based row) (0-based column)
Essayez-le en ligne!
Explication
la source
.+
. Normalement, cela a le problème de conserver l'élément de fin sans le sommer (ce qui coûte des octets à supprimer), mais dans ce cas, cela économise réellement des octets, car vous n'avez pas besoin d'ajouter un6
à chaque itération. Vous pouvez économiser encore plus d'octets, car le décalage vers la gauche est gratuit si vous ajoutez uniquement0
un à une copie:X6_]ri{0X$+.+}*ri=
_0\+
au lieu de0X$+
c'est le même nombre d'octets si vous préférez.C #, 157 octets
Essayez-le en ligne
la source
Python 2 , 67 octets
Essayez-le en ligne!
Approche par force brute, calculez la
a
e ligne, puis imprimez leb
e nombre, les deux entrées sont basées sur 0la source
Python 3 ,
646052 octetsEssayez-le en ligne!
Solution récursive utilisant 1-indexation. Sorties "True" au lieu de 1 pour le golf.
Grâce à:
la source
Haskell , 41 octets
Essayez-le en ligne!
Appelez en utilisant
n # m
oùn
est le numéro de ligne etm
le numéro de colonne, tous deux indexés sur 1.la source
Mathematica, 32 octets
contribution
la source
JavaScript (ES6), 38 octets
Se bloque pour les colonnes négatives et renvoie des multiples de six pour les lignes négatives ou les colonnes trop volumineuses.
la source
C # (.NET Core) , 44 octets
Prend la colonne puis la ligne, toutes deux indexées sur 1. Peut prendre la ligne puis la colonne en échangeant les entrées:
(r,c)
. Reviendrarow * 6
pour les coordonnées en dehors des limites sur la droite (iecolumn > row + 1
), et1
pour les coordonnées en dehors des limites sur la gauche (iecolumn < 1
).la source
PHP , 64 octets
fonction récursive
lignes 1 indexation colonnes 0 indexation
La sortie pour la ligne = 0 et la colonne = 0 est 0 comme dans la séquence OEIS
Essayez-le en ligne!
PHP , 126 octets
lignes 1 indexation colonnes 0 indexation
La sortie pour la ligne = 0 et la colonne = 0 est 0 comme dans la séquence OEIS
Essayez-le en ligne!
la source
R , 77 octets
Nécessite la
zoo
bibliothèque; lit à partir de stdin (les entrées séparées par deux retours à la ligne) et renvoie la valeur, avecNA
pour les sélections hors limites.Essayez-le en ligne!
la source
Gelée , 13 octets
Un lien monadique prenant une liste de
[row, entry]
(0-indexation pour les entrées, 1-indexation pour les lignes), retournant la valeur.Essayez-le en ligne!
Comment?
la source