Permettez-moi de vous présenter les numéros GAU
GAU(1) = 1
GAU(2) = 1122
GAU(3) = 1122122333
GAU(4) = 11221223331223334444
GAU(6) = 11221223331223334444122333444455555122333444455555666666
...
GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010
Ce défi est assez simple!
Étant donné un entier n> 0, trouver le nombre de chiffres de GAU (n)
Exemple
Faisons GAU (4),
nous prenons les mesures suivantes (jusqu'à ce que nous arrivions à 4) et les concaténons
[1][122][122333][1223334444]
vous devez écrire chaque nombre autant de fois que sa valeur, mais vous devez compter chaque fois à partir de 1
Essayons de faire GAU (5)
il faudra compter de 1 à 1
[1]
puis de 1 à 2 (mais en répétant chaque nombre autant de fois que sa valeur )
[122]
puis de 1 à 3
[122333]
puis de 1 à 4
[1223334444]
et enfin de 1 à 5 (c'est la dernière étape car on veut trouver GAU ( 5 ))
[122333444455555]
Maintenant, nous prenons toutes ces étapes et les concaténons,
le résultat est GAU (5)
11221223331223334444122333444455555
Nous sommes intéressés par le nombre de chiffres de ces numéros GAU.
Cas de test
Entrée⟼Sortie
n ⟼ Length(GAU(n))
1 ⟼ 1
2 ⟼ 4
3 ⟼ 10
10 ⟼ 230
50 ⟼ 42190
100 ⟼ 339240
150 ⟼ 1295790
Il s'agit d'un défi de code-golf .
Le code le plus court en octets gagnera.
Si vous avez encore des questions, faites-le moi savoir.
Je veux vraiment que tout le monde ici comprenne ce schéma complexe magique caché
n ⟼ Length(GUA(n))
, pas GAU (n).Réponses:
SOGL V0.12 ,
1110875 octetsEssayez-le ici! - ceci s'attend à être appelé en fonction avec l'entrée sur la pile et la boîte d'entrée vide.
Alternative de 7 octets prenant l'entrée de la zone de saisie:
Essayez-le ici!
la source
push that numbers length without popping the number
niceHaskell , 45 octets
Essayez-le en ligne!
la source
Brain-Flak , 166 octets
Essayez-le en ligne!
Explication
la source
Husk , 5 octets
Essayez-le en ligne!
Explication
la source
Gelée , 7 octets
Essayez-le en ligne!
la source
05AB1E , 5 octets
Essayez-le en ligne!
Explication
la source
Python 2 , 53 octets
Essayez-le en ligne!
la source
Husk , 7 octets
Essayez-le en ligne!
Non golfé / Explication
la source
Husk , 7 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6),
5755 octetsEssayez-le en ligne!
la source
Python 2 ,
5958 octetsUn autre met la poussière grâce à Jonathan Frech.
Essayez-le en ligne!
Pas court mais hein ... que diable.
la source
len(`i`)*i for
->i*len(`i`)for
.CJam , 20 octets
Essayez-le en ligne!
Le nombre est passé dans le champ "entrée".
Explication non gérée: (exemple d'entrée = 2)
Cela semble difficile quand on l'explique lol.
la source
J, 24 octets
Approche de haut niveau similaire à la réponse APL de dzaima, traduite en J, sauf que nous calculons la longueur du nombre en la transformant d'abord en chaîne au lieu de prendre des journaux, et nous pouvons utiliser le crochet de J pour multiplier cette longueur par le nombre lui-même:
(*#@":"0)
. Après cela, c'est juste la somme de la somme du scan.Essayez-le en ligne!
la source
1(#.]*#\*#\.)1#@":@+i.
fonctionne également pendant 22 octetsR , 39 octets
Vérifiez tous les cas de test!
Algorithme simple; J'ai observé, comme la plupart l'ont fait, que pour
i
in1:n
,i
c'est répété desi*(n-i+1)
fois. Je crée donc ce vecteur, compte le nombre de caractères dans chacun et les additionne.la source
Python 2,
5150 octetsla source
JavaScript (ES6),
5042 octetsMise à jour: maintenant essentiellement un portage de ce que font les autres réponses.
Cas de test
Afficher l'extrait de code
la source
Mathematica, 66 octets
la source
QBIC , 21 octets
la source
En fait , 13 octets
Essayez-le en ligne!
Explication:
la source
Japt ,
1211109 octetsEssayez-le ou testez tous les nombres de 1 à 150 .
Explication
Saisie implicite d'entier
U
.Générez un tableau d'entiers de 1 à
U
puis générez des sous-tableaux de 1 à chaque entier.Passez les éléments de chaque sous-tableau via une fonction.
Convertissez l'élément actuel en chaîne (
s
), obtenez sa longueur (Ê
) et multipliez-le par l'élément.Réduisez le tableau principal par addition après avoir fait la même chose pour chaque sous-tableau.
la source
Jq 1.5 ,
824943 octetsÉtendu
Sample Run
Essayez-le en ligne! aussi jqplay.org
la source
Empilé , 28 octets
Essayez-le en ligne!
Certains pourraient demander: "À quel moment les alias sont-ils illisibles?" Si ce n'est pas proche, vous avez une définition très libérale de la "lisibilité".
Explication
la source
Rubis ,
4140 octetsEssayez-le en ligne!
la source
C # (.NET Core) ,
948074 octetsEssayez-le en ligne!
J'espérais trouver une solution directe comme ce que la réponse de @ kamoroso94 commencé, mais j'ai abandonné car je trop de temps dessus. Il y a probablement un moyen de le faire, mais la formule doit être ajustée pour chaque pas de grandeur.
Remerciements
14 octets économisés grâce à @someone
6 octets économisés grâce à @Kevin Cruijssen
la source
n=>{int b=0,a=0,i;for(;a++<n;)for(i=0;i++<a;)b+=i.ToString().Length*i;return b;}
Essayez-le en ligne! pour 80 octets et performances.i.ToString()
peut être(i+"")
d'économiser quelques octets supplémentaires.MATL , 15 octets
Essayez-le en ligne!
Explication:
la source
:ttP*Y"VXzn
Perl 6 , 36 octets
Essaye-le
Étendu:
la source
Fusain ,
1814 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Edit: Utilisation
Sum
m'a sauvé 4 octets. Explication:la source
Σ
place ...Sum
est toujours de 18 octets:Print(Cast(Sum(Map(InclusiveRange(1, InputNumber()), Sum(Map(InclusiveRange(1, i), Times(l, Length(Cast(l)))))))));
Incremented
: P≔⊕NθIΣEθ×⁻θι×ιLIι
. Cependant, en utilisantIncremented
au lieu deInclusiveRange
raser 4 octets de mon commentaire précédent!Ohm v2 , 7 octets
Essayez-le en ligne!
la source
[Dyalog APL],
2220 octetsEssayez-le en ligne!
Explication:
la source
Röda , 31 octets
Essayez-le en ligne!
la source