Étant donné un entier positif n en entrée, sortez la somme de plage inversée de n.
Une somme de plage inversée est créée en créant une plage inclusive jusqu'à n, en commençant par 1 et en incluant n, en inversant chacun des nombres à l'intérieur et en le sommant.
Exemple:
Voici ce qui se passerait pour une entrée de 10:
Gamme: [1,2,3,4,5,6,7,8,9,10]
Inverse: [1,2,3,4,5,6,7,8,9,01]
(les nombres à 1 caractère inversés sont eux-mêmes, 10 inversés est 01 ou 1)
Somme: 46
Les nombres avec 3+ chiffres sont inversés de la même manière que les nombres avec 2 chiffres. Par exemple, 1234 deviendrait 4321.
Cas de test:
Input -> Output
10 -> 46
5 -> 15
21 -> 519
58 -> 2350
75 -> 3147
999 -> 454545
Les cas de texte complets à l'entrée de 999 peuvent être trouvés ici , merci beaucoup à @ fireflame241.
code-golf
number
arithmetic
Camarade SparklePony
la source
la source
Réponses:
05AB1E , 3 octets
Code
Utilise l' encodage 05AB1E . Essayez-le en ligne!
Explication
la source
Reverse
devrait bien être enReverse each
fait ...R
, tandis queí
"inverser chacun".Utilitaires Bash + GNU, 24
Essayez-le en ligne .
Explication
la source
JavaScript (ES6), 42 octets
Ma solution doublement récursive préférée est malheureusement 3 octets de plus:
la source
Perl 6 , 20 octets
Essaye-le
Étendu:
la source
».flip
appelle la.flip
méthode sur chacune des valeurs de la plage. La prochaine façon la plus courte de le faire.map(*.flip)
est de 5 octets de plus.».flip
appel hyper méthode. Bien que je puisse diviser le»
et.flip
en utilisant un espace\
comme je l'ai fait avant; cela le rendrait plus difficile à comprendre, car il ressemblerait à la fin d'uneqqww/ /
construction (« a b "c d" »
).Rétine ,
413635 octetsEssayez-le en ligne! Le lien inclut des cas de test. Edit: 5 octets enregistrés grâce à @FryAmTheEggman. 1 octet enregistré grâce à @ PunPun1000. Explication:
Convertissez en unaire.
Créez une plage de
1
àn
.Reconvertissez en décimal.
Inversez chaque numéro.
Revenez à unaire.
Additionnez et reconvertissez en décimal.
la source
¶
dans.+¶
Le match s'alignera sur plusieurs lignesO^$s`.
pour inverser toute la chaîne fonctionne également.Gelée , 4 octets
Essayez-le en ligne!
Comment?
la source
Haskell, 34 octets
Simple et direct.
la source
C (gcc) , 63 octets
Essayez-le en ligne!
la source
cQuents , 4 octets
Essayez-le en ligne!
Explication
la source
Python 2 , 38 octets
Impossible de calculer des termes supérieurs à la limite de récursivité:
Essayez-le en ligne!
la source
import sys
etsys.setrecursionlimit()
si vous souhaitez gérer des nombres plus importants, dans l'en-tête tio.Brachylog , 4 octets
Essayez-le en ligne!
Explication
la source
Röda ,
564136 octets15 octets économisés grâce à @fergusq
Essayez-le en ligne!
Il s'agit d'une fonction anonyme qui prend un entier dans le flux d'entrée et génère un entier dans le flux de sortie.
Explication
la source
[::-1]
au lieu d'inverser. De plus, `$_
` est plus court que_..""
et les parenthèses après que parseInteger ne sont pas nécessaires.C # (.NET Core) ,
10397 octetsEssayez-le en ligne!
Le lien TIO génère tous les résultats de 1 à 999, alors n'hésitez pas à vérifier mon travail.
Je m'attendais à ce que ce soit un peu plus court, mais il s'avère que
Reverse()
renvoie uneIEnumerable<char>
au lieu d'une autre chaîne, j'ai donc dû ajouter un peu plus pour la transformer en chaîne afin de pouvoir l'analyser en un int. Il y a peut-être un moyen plus court de passer deIEnumerable<char>
à int correctement.Il est à noter que cela utilise également les fonctionsRange()
Reverse()
etSum()
tout dans l'ordre.-6 octets grâce à TheLethalCoder
la source
new int[r]
et vous.Select((_,n)=>...)
fera économiser des octets.new int[r+1]
pour obtenir la bonne sortie puisque l'index commence à 0, mais il enregistre tout de même quelques octets. RIPRange()
cependantRubis,
56, 52, 41,39 octetsRuby, 34 octets (si le paramètre lambda est une chaîne)
Merci à @Unihedron pour la deuxième solution.
la source
->n{
fonctionne aussi bien.?a..?z
et?a1..?h8
(bien que vous feriez mieux de faire attention avec le 2ème format: D)succ
et 2. (si la valeur de début ou de fin ne sont pas implémentéessucc
) doivent être numériques, ellesint..string
seront donc rejetées en tant que "Mauvaise valeur pour la plage". L'inverse est vrai (mais hélas, il n'y a pas de valeur descendante), ou(?1..n)
peut être utilisé à la placeMathematica, 47 octets
Essayez-le en ligne! (afin de travailler sur les mathématiques, nous devons remplacer "Tr" par "Total")
la source
Tr@*IntegerReverse@*Range
Fusain ,
1413 octets-1 octet grâce à Carlos Alejo
Essayez-le en ligne! Le lien est vers la version détaillée.
Explication
la source
»
. Au fait, où dans le wiki Charcoal l'Reduce
opérateur est-il documenté?Modulo
opérateur peut-il être utilisé pour formater des chaînes en charbon de bois?Magneson , 102 octets
Ce n'est pas très visible, alors voici une version à plus grande échelle (Remarque: ne fonctionnera pas réellement et n'est toujours pas très jolie)
Magneson fonctionne en analysant une image et en évaluant les commandes à partir des couleurs des pixels qu'elle lit. Donc, en parcourant l'image de ce défi, nous avons:
R: 0, G: 1, B: 1
est une commande d'affectation d'entier, qui prend une chaîne pour le nom de variable et la valeur à affecter. Nous allons l'utiliser pour stocker la somme totale.R: 0, G: 1, B: 0
est une chaîne précompilée avec la valeurVAR_1
(Remarque: ce n'est que lorsque nous demandons une chaîne; le code de couleur a une fonction distincte lorsqu'il est utilisé ailleurs).R: 3, G: 0, B: 0
est un nombre brut. Magneson gère les nombres standard en exigeant que le composant rouge soit exactement 3, puis forme un nombre en utilisant directement la valeur bleue plus la valeur verte multipliée par 256. Dans ce cas, nous obtenons simplement le nombre 0.R: 0, G: 1, B: 1
est une autre commande d'affectation d'entiers. Cette fois, nous stockons une variable d'itération, pour garder une trace du nombre sur lequel nous sommesR: 0, G: 1, B: 1
est une chaîne prédéfinie avec la valeurVAR_2
(une fois de plus, uniquement lorsque nous avons besoin d'une chaîne)R: 3, G: 0, B: 0
est le nombre 0, une fois de plus. Sur les morceaux intéressants maintenant.R: 1, G: 0, B: 0
indique le début d'une boucle. Cela prend un certain nombre et boucle plusieurs fois l'extrait de code suivant.R: 2, G: 0, B: 0
est la fonction STDIN, ou du moins c'est quand nous avons besoin d'un nombre. Cela lit une ligne d'entrée de la console et la transforme en nombre, puisque nous avons demandé un nombre.R: 0, G: 8, B: 0
démarre notre code en boucle, et c'est une commande additive. Cela ajoute un nombre à une variable entière et prend donc une chaîne pour le nom de la variable et le nombre à ajouter.R: 0, G: 1, B: 1
est la chaîne précompilée pourVAR_2
, qui est notre variable d'itération.R: 3, G: 0, B: 1
est un nombre brut, mais cette fois c'est le numéro 1.R: 0, G: 8, B: 0
est une autre commande d'addition.R: 0, G: 1, B: 0
est la chaîne pourVAR_1
, qui est notre somme totale.R: 0, G: 3, B: 0
est une fonction qui inverse une chaîne. Dans le contexte de la demande d'un nombre, il convertit ensuite la chaîne inversée en nombre.R: 0, G: 2, B: 1
est une commande de récupération d'entier, et récupérera le nombre stocké dans une variable fournie. Dans le contexte de la demande d'une chaîne (comme à partir de la commande inverse), il convertit le nombre en chaîne.R: 0, G: 1, B: 1
est le nomVAR_2
; notre variable d'itération.R: 1, G: 0, B: 1
est le marqueur pour terminer la boucle, et revenir au début de la boucle si les critères ne sont pas remplis (donc si nous devons continuer à boucler). Sinon, continuez.R: 0, G: 0, B: 1
est une commande println très simple et prend une chaîne.R: 0, G: 2, B: 1
récupère un entier à partir d'une variableR: 0, G: 1, B: 0
est le nom de notre variable somme totale,VAR_1
Dans l'ensemble, le programme:
VAR_1
etVAR_2
VAR_2
VAR_2
àVAR_1
VAR_1
la source
Python 2 ,
5047 octets-3 octets grâce à officialaimm!
Essayez-le en ligne!
la source
str
saves 3 bytes.CJam, 12 bytes
Try it online!
-1 thanks to Business Cat.
Explanation:
la source
,
APL (Dyalog),
107 bytes3 bytes golfed thanks to @Adám by converting to a tradfn from a train
Try it online!
la source
+/⍎⌽⍕⍳⎕
¨
was clever :)Java 8, 97 bytes
EDIT
As per the comment of
Kevin Cruijssen
, I would like to improve my answer.Java 8, 103 bytes
la source
Integer.valueOf
can be golfed tonew Integer
, and.reverse().toString()
can be golfed to.reverse()+""
. Also, you must include the required imports and lambda parameters, likejava.util.stream.IntStream
andn->
before it. And you can also golfIntStream
&Integer
toLongStream
andLong
. The final answer will ben->java.util.stream.LongStream.range(1,n+1).map(i->new Long(new StringBuffer(""+i).reverse()+"")).sum()
(103 bytes - Your current answer with added import and lambda parameter would be 117 bytes.) Still +1, nice answer!Japt,
75 bytes-2 bytes thanks to @Shaggy.
Try it online!
Explanation
Old solution, 7 bytes
Keeping this since it's a really cool use of
z2
.Try it online!
Explanation
la source
z2
on a flat array is the same asw
, righ... uhm... excuse my inadequacy at Japt...õ_swÃx
thanks to the new addition ofN.s(f)
.õs xw
for 5 bytes.z2
trick; that was pretty damn genius. Note that non-competing is no longer a thing.C++, 146 bytes
la source
auto
.auto
keyword is neededusing namespace std;
saving bytes.Husk,
7 63 bytesTry it online!
Ungolfed/Explanation
la source
Perl 5,
29 2722 + 1 (-p
) = 23 bytesTry it online!
la source
map$r+=reverse,1..<>;say$r
.-p
RProgN 2, 8 bytes
Explained
Try it online!
la source
Pyth,
86 bytes-2 bytes thanks to FryAmTheEggman!
Try it online!
la source
sms_`dS
, that does not abuse implicitU
at the end.Tcl, 66 bytes
Try it online!
la source
Neim, 4 bytes
Try it online!
Explanation
la source
𝐈Ψ𝐫𝐬
(create inclusive range, reverse each element, sum)Ψ
token existed! would have definitely used that in hindsight. real niceC (gcc), 71 bytes
Try it online!
la source
f()
returns its result without anyreturn
statement? Does thee=a
instruction manipulates the registers in such a way that the result is stored in the same register than the one used by returned values?