Étant donné un entier positif n
, procédez comme suit (et sortez à chaque étape):
- commencer par une liste contenant des
n
copies den
. - procédez comme suit
n
: - à la
i
e étape, décrémenter progressivement lai
e entrée de la liste jusqu'à ce qu'elle atteignei
Ainsi, par exemple, si le GIVEN n
est 4
, vous commencez avec [4,4,4,4]
, puis lors de la première étape que vous avez [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. Lors de la deuxième étape, vous avez [1,3,4,4]
, [1,2,4,4]
. À la troisième étape, vous avez [1,2,3,4]
. Rien n'est fait sur la quatrième étape.
Votre sortie est donc [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Tout format d'entrée / sortie raisonnable est autorisé.
Des échappatoires standard s'appliquent. C'est le code-golf : la réponse avec le plus petit nombre d'octets gagne.
code-golf
array-manipulation
Leaky Nun
la source
la source
i
th est toujours indexé sur 1.Réponses:
Gelée , 9 octets
Essayez-le en ligne!
Comment?
* Il peut être plus facile de voir ce qui se passe avec le produit cartésien utilisé ci-dessus avec une entrée différente:
la source
R ,
838274 octetsEssayez-le en ligne!
Au lieu d'une double boucle for, une
while
boucle suffit ici: on trouve le premier index où la liste est supérieure à l'index, et on y décrémente.K
aTRUE
n'importe oùN[i]>i
,which(K)
renvoie les vrais indices, et nous prenons le premier avec[1]
.la source
Gelée , 12 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 75 octets
Essayez-le en ligne!
la source
APL + WIN, 54 octets
Invite à saisir à l'écran un entier
Sort une matrice avec chaque ligne représentant le résultat de chaque étape, par exemple pour 4:
la source
Gelée , 11 octets
Essayez-le en ligne!
Comment ça marche
la source
Python 3 , 91 octets
Essayez-le en ligne!
la source
Java (OpenJDK 8) , 135 octets
Essayez-le en ligne!
Explication:
Crédit:
-8 octets grâce à Jonathan Frech !
-16 octets grâce à Kevin Cruijssen !
-1 octet grâce à Okx !
la source
import java.util.*;
fait partie du comptage d'octets que j'ai peur. Et le code de @ JonathanFrech peut être joué par 4 octets supplémentaires en mettant le,i=0
après ler[]
, et en changeant<-~a
en<=a
. ( Essayez-le en ligne. 144 octets ) (et j'ai changé~-i
pouri-1
le rendre plus lisible ..)import java.util.*;
en utilisantjava.util.Arrays x=null;
etx.fill
etx.toString
. (Notez que votre solution actuelle est de 155 octets avec le nécessaireimport java.util.*;
.)for(;r[i-1]>i;
plutôt quefor(;r[i-1]!=i;
.++i<=a
au golfi++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Essayez-le en ligne 135 octetsHaskell,
69 67 6563 octetsDéfinition récursive:
Merci à Laikoni pour 2 octets!
la source
map
est plus court de deux octets avec une compréhension de la liste: Essayez-le en ligne!PHP, 153 octets
Essayez-le en ligne!
Code
Je vais essayer de réduire les octets ou de terminer la fonction récursive
Explication
la source
Python 2 ,
8076 octetsEssayez-le en ligne!
Un peu inutile d'avoir deux
print
déclarations mais je ne peux pas penser à une meilleure façon pour le moment.la source
Python 2 , 70 octets
-2 octets grâce à @LeakyNun
-2 octets grâce à @JonathanFrech
Essayez-le en ligne!
la source
(I-1)
->~-I
i=I
et décrémentation.Java (JDK 10) , 112 octets
Essayez-le en ligne!
la source
J ,
1715 octetsEssayez-le en ligne!
Explication
la source
Rétine , 49 octets
Essayez-le en ligne! Explication:
Convertissez l'entrée en unaire.
Créez une liste de n copies de
i,n
oùi
est l'index de la copie.N'imprimez rien (lorsque la boucle se termine).
Boucle jusqu'à ce que le motif ne change pas.
Supprimez temporairement le
i
s et convertissez-len
en décimal et en sortie.Prenez la première entrée de liste dont la valeur dépasse son index et décrémentez-la.
la source
Python 3 ,
706765 octetsEssayez-le en ligne!
Version non golfée:
la source
C (clang) ,
131141 octetsEssayez-le en ligne!
Cela fonctionnera pour tous
n
jusqu'à 99. TIO tronque la sortie. Il peut prendre en charge arbitrairement plus grandn
en modifiant la taille du tableaum
si la mémoire le permet.Le suivi est limité à n = 1..9 mais est significativement plus court
C (clang) ,
8992 octetsEssayez-le en ligne!
Mise à jour: modifiée pour éviter la dépendance à l'initialisation statique
la source
static/global initialization because multiple test cases
n'est pas autorisé, car les fonctions doivent pouvoir être appelées plusieurs fois.m[j]--,p()
au golfp(m[j]--)
et enregistrer un octet.Clojure, 132 octets
J'espérais que ce serait plus court ...
Moins dynamique mais plus long à 141 octets:
la source
Python 3, 101 octets
Je pourrais probablement jouer davantage au golf avec l'impression, mais je suis loin de mon ordinateur et je ne suis pas entièrement sûr des règles de python 2 sur la définition d'une variable à imprimer. Je mettrai à jour plus tard quand j'arriverai à un ordinateur ou si quelqu'un clarifie dans les commentaires.
la source
K (ngn / k) ,
3432 octetsEssayez-le en ligne!
la source