Étant donné un entier strictement positif n , procédez comme suit:
- Créez un tableau A avec n 1 s.
- Si A n'a qu'un seul élément, terminez. Dans le cas contraire, en commençant par le premier élément, remplacer chaque paire de A avec sa somme, la sortie du dernier élément est comme si une longueur d » est impair, et répéter cette étape.
La sortie doit contenir un état de » après chaque étape dans l' ordre depuis la première étape jusqu'à la dernière. L'utilisation de failles standard est interdite. C'est un défi de code-golf , donc la solution avec le moins d'octets dans chaque langue gagne.
Cas de test
Chaque ligne dans la sortie de ces exemples est un état. Vous pouvez sortir via n'importe quel format raisonnable.
Contribution: 1
[1]
Contribution: 4
[1, 1, 1, 1]
[2, 2]
[4]
Contribution: 13
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 1]
[8, 5]
[13]
Contribution: 15
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 3]
[8, 7]
[15]
code-golf
arithmetic
Erik le Outgolfer
la source
la source
Réponses:
05AB1E , 7 octets
Essayez-le en ligne!
la source
MATL , 10 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 3 , 57 octets
Essayez-le en ligne!
Python 2 , 51 octets
Essayez-le en ligne!
-6 octets au total grâce à tsh
Fonction récursive. Pour chaque étape, il construit une liste de puissances de
2
, telle que la somme est inférieure ou égale à l'entier donné. Il ajoute ensuite le reste, s'il est plus grand que0
.la source
def f(i,j=1):l=i//j*[j]+[i%j][:i%j];print(l);i>j and f(i,j*2)
; Python 2 55 octets:def f(i,j=1):l=i/j*[j]+[i%j][:i%j];print l;i>j>f(i,j*2)
i>j
n'a pas fonctionné dans ma solution précédente et j'ai oublié de l'essayer par la suite.Gelée , 6 octets
Essayez-le en ligne!
la source
R , 65 octets
-1 octet grâce à Giuseppe.
Essayez-le en ligne!
%/%
%%
k=2^i
n%/%k
k
n%%k
Ici, j'utilise à la
T
place dek
, car il est initialisé commeTRUE
converti en 1. J'ai encore besoin d'imprimer+T
au lieu deT
pour éviter un vecteur deTRUE
s dans la sortie.la source
+T
est plus court queT+0
Pyth , 10 octets
Essayez-le en ligne!
-1 octet grâce à FryAmTheEggman
la source
JavaScript (V8) , 109 octets
Essayez-le en ligne!
la source
Wolfram Language (Mathematica) ,
5554 octetsEssayez-le en ligne!
Finalement,Sow
/Reap
bat une alternative!Renvoie une liste singleton contenant une liste des étapes.
la source
K (oK) ,
1517 octetsEssayez-le en ligne!
la source
J , 20 octets
Essayez-le en ligne!
-2 octets grâce à Bubbler
la source
[:
et()
.Gelée , 6 octets
-1 octet grâce à Erik l'Outgolfer .
Essayez-le en ligne!
la source
JavaScript, 55 octets
Essayez-le en ligne!
Il s'agit essentiellement de la version golfée des codes suivants:
la source
Japt
-R
, 13 octetsEssayez-le
la source
Brachylog , 17 octets
Essayez-le en ligne!
Comme horriblement longtemps que cela est, je me sens encore un peu intelligent pour utiliser
.ẉȮ
: la manière évidente d'imprimer quelque chose, vérifier si sa longueur est de 1 seraitẉ₂l1
,ẉ₂~g
ouẉ₂≡Ȯ
, où≡
la dernière est nécessaire parce queẉ₂
unifie son entrée et sortie avant de les imprimer, etȮ
est pré-contrainte à être une liste de longueur 1, donc l'unification échoue si l'entrée n'est pas une liste de longueur 1. À la fin d'un prédicat, cette caractéristique deẉ₂
peut être contournée, cependant, par en utilisant la variable de sortie au lieu de l'indiceẉ
: d'.ẉȮ
abord unifie son entrée avec la variable de sortie, puis imprime la variable de sortie, puis unifie ensuite la variable de sortie avecȮ
.la source
Stax , 10 octets
Exécuter et déboguer
Procédure:
Source annotée:
la source
Fusain , 19 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Utilise le format de sortie par défaut de Charcoal, qui est un nombre par ligne, avec des sous-réseaux à double espacement les uns des autres. Explication:
la source
Perl 5 , 46 octets
Essayez-le en ligne!
La sortie est séparée par des espaces.
la source
Perl 6 , 38 octets
Essayez-le en ligne!
Il y a un raccourci vers la rotation partielle dont je ne me souviens pas pour l'instant ...
Explication:
la source
Haskell , 75 octets
Essayez-le en ligne!
Fonctionne à l'envers à partir de la liste
[n]
jusqu'à ce qu'elle atteigne une liste de seulement ceux-là.Aller vers l' avant, je pourrais obtenir 80 octets en utilisant
chunksof
deData.List.Split
:Essayez-le en ligne!
la source
Ohm v2 , 8 octets
Essayez-le en ligne!
Si la sortie en notation scientifique est autorisée, sinon:
Ohm v2 , 9 octets
Essayez-le en ligne!
la source
Gaia , 12 octets
Essayez-le en ligne!
la source