Défi
Calculez la somme étrange de deux nombres naturels (également appelés addition lunaire):
Étant donné A=... a2 a1 a0
et B=... b2 b1 b0
deux nombres naturels écrits dans la base décimale, la somme étrange est définie, basée sur l' opération maximale , comme:
A+B=... max(a2,b2) max(a1,b1) max(a0,b0)
... a2 a1 a0
+ ... b2 b1 b0
----------------------------------------
... max(a2,b2) max(a1,b1) max(a0,b0)
Contribution
Deux nombres naturels
Tout ce qui suit est autorisé:
- Cordes sans rembourrage (même longueur)
- Cordes rembourrées dans l'espace gauche
- Cordes rembourrées dans l'espace droit
- Tableau de deux cordes rembourrées
- Tableau de caractères 2D à remplissage d'espace
Production
Un nombre naturel
Exemple
1999+2018-->2999
17210+701-->17711
32+17-->37
308+250-->358
308+25-->328
Règles
- L'entrée et la sortie peuvent être données dans n'importe quel format pratique (choisissez le format le plus approprié pour votre langue / solution).
- Pas besoin de gérer des valeurs négatives ou des entrées invalides
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
code-golf
math
arithmetic
mdahmoune
la source
la source
Réponses:
Python 2 , 20 octets
Essayez-le en ligne!
E / S sous forme de listes de chiffres pré-remplies.
la source
Gelée , 1 octet
Essayez-le en ligne!
E / S sous forme de listes de chiffres pré-remplies.
la source
R ,
6865 octetsEssayez-le en ligne!
Entrée sous forme d'entiers, sortie sous forme de liste de chiffres.
Si des listes de chiffres à remplissage nul étaient autorisées,
pmax
cela suffirait.la source
MATL , 2 octets
Le format d'entrée est le suivant: tableau de caractères 2D de deux lignes, chacune correspondant à une ligne, avec le nombre le plus court rempli à gauche avec des espaces. Par exemple
qui dans MATL est défini comme
Essayez-le en ligne!
Explication
la source
Python 2 ,
736056 octetsEssayez-le en ligne!
Prend l'entrée en deux chaînes et retourne une liste de chiffres
Alternative:
Prend l'entrée comme deux entiers; même sortie
Python 2 ,
6059 octetsEssayez-le en ligne!
la source
Java 10,
7857 octetsSaisissez deux tableaux de caractères à espace.
Modifie le premier tableau d'entrée au lieu d'en renvoyer un nouveau pour économiser 21 octets (merci à @ OlivierGrégoire ).
Essayez-le en ligne.
Explication:
la source
a->b->{for(int i=a.length;i-->0;)if(a[i]<b[i])a[i]=b[i];}
( 57 octets ). Réutiliseza
comme sortie pour gagner beaucoup, beaucoup d'octets.J ,
1412 octets-2 octets grâce à Jonah
Essayez-le en ligne!
Entrée et sortie sous forme de liste (s) de chiffres
la source
(>./@,:)&.|.
. Essayez-le en ligne!Japt,
987 octetsPrend l'entrée comme un tableau de tableaux de chiffres.
Essayez-le
Si la prise de tableaux à remplissage nul en entrée est autorisée (elle relèverait actuellement d'un "format pratique" mais je soupçonne que ce n'est pas l'intention du challenger), cela peut être de 3 octets.
Essayez-le
la source
y
instant? Je ne le savais pas. Voici une autre façon , également 8 octets.'
. Je ne sais pas si cela permettrait d'économiser des octets, mais c'est vraiment cool.Perl 6 , 37 octets
Essayez-le en ligne!
Prend la saisie sous forme de liste de listes de chiffres.
la source
05AB1E ,
9 65 octets-3 grâce à Emigna
-1 grâce à Shaggy
Prend la saisie comme une liste de listes de chiffres
Essayez-le en ligne! ou Essayez tous les cas de test
la source
€R
peut êtreí
. De plus, je ne pense pas que vous ayez besoin€þ
denumber > space
€þ
et ça n'a pas marché, mais maintenant ça marche ...J
à la fin?Perl 6 , 15 octets
Essayez-le en ligne!
Prend l'entrée comme une liste de tableaux de caractères à espace rembourré, bien que pour ce défi, le format d'entrée laxiste le rend plutôt ennuyeux. Alternativement, voici le programme qui prend à la place une liste de deux entiers:
Perl 6 , 41 octets
Essayez-le en ligne!
Si cela ne vous dérange pas une énorme quantité d'espace, vous pouvez également supprimer le
+
par l'avant.Explication:
la source
Haskell , 40 octets
Entrée / sortie sous forme de chaînes, essayez-le en ligne!
Explication
La fonction
p
remplace chaque caractère par un espace, en utilisantp b++a
etp a++b
sont donc de la même longueur. De cette façon, nous pouvons utiliserzipWith
sans perdre aucun élément, l'utilisermax
avec cela fonctionne car un(espace) a un point de code inférieur à n'importe lequel des caractères
['0'..'9']
.la source
JavaScript (ES6),
5149 octetsNB: Cette réponse a été publiée avant que les formats d'E / S en vrac ne soient explicitement autorisés. Avec des tableaux de chiffres à remplissage nul, cela peut être fait en 33 octets (mais c'est beaucoup moins intéressant, à mon humble avis).
Prend l'entrée comme deux entiers. Renvoie un entier.
Essayez-le en ligne!
Commenté
Version alternative
Même format d'E / S.
Essayez-le en ligne!
la source
Tcl , 156 octets
Essayez-le en ligne!
Pas très golfique, mais j'ai dû essayer. Va jouer au golf plus tard!
la source
Lot, 120 octets
Prend l'entrée comme paramètres de ligne de commande. La version de 188 octets fonctionne sur des entiers de longueur arbitraire:
Prend entrée sur STDIN.
la source
Brindille , 125 octets
Quand j'ai vu ce défi, j'ai pensé: "laissez-moi utiliser un langage de modèle!
J'avais tort ... tellement tort ... ... Mais c'était amusant!
Cela nécessite que "strict_variables" soit défini sur
false
(valeur par défaut).Pour utiliser cette macro, vous pouvez faire comme ceci:
Doit afficher 167.
Vous pouvez essayer ceci dans https://twigfiddle.com/rg0biy
("strict_variables" désactivé, il est activé par défaut sur le site Web)
la source
Husk , 5 octets
Prend facilement les entrées / sorties sous forme de liste de chiffres, essayez-les en ligne ou vérifiez tout!
Explication
la source
Stax , 5 octets
Exécuter et déboguer
Ce programme prend l'entrée comme un tableau de chaînes.
Exécutez celui-ci
C'est la première fois que je vois une utilisation de l'instruction de superposition "à l'état sauvage".
la source
SNOBOL4 (CSNOBOL4) , 153 octets
Essayez-le en ligne!
la source
Pyth, 5 octets
Prend l'entrée comme un tableau de deux chaînes remplies d'espace.
Essayez-le ici .
la source
Japt , 4 octets
L'entrée est considérée comme un tableau de deux tableaux de nombres à 0.
Essayez-le en ligne!
la source
Ceylan, 55/99
Avec des chaînes 0 ou remplies d'espace de même longueur (renvoyant un itérable de caractères):
Avec des chaînes à 0 ou à espace (renvoyant une chaîne):
Avec des chaînes de longueur éventuellement différente (renvoyant une chaîne):
la source
C # (.NET Core) , 57 octets
-1 octets en ajoutant currying
Essayez-le en ligne
la source
Rubis , 25 octets
Essayez-le en ligne!
Liste pré-remplie bla bla. (Bien que cela ressemble un peu à de la triche.)
la source
Retina 0.8.2 , 39 octets
Essayez-le en ligne! Le lien inclut une suite de tests. La version précédente de 45 octets de Retina 1 accepte les chaînes non rembourrées:
Essayez-le en ligne! Le lien inclut une suite de tests. Explication:
Remplissez les deux valeurs à la même longueur. (Retina 1 uniquement. Il existe des moyens d'émuler cela dans Retina 0.8.2 mais ils ne sont pas très golfiques.)
Transposer les valeurs.
Triez chaque paire dans l'ordre.
Supprimez tous les chiffres bas et les nouvelles lignes excédentaires.
la source
Fusain , 8 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
La version 10 octets "ajoute" n'importe quel nombre de chaînes rembourrées:
Essayez-le en ligne! Le lien est vers la version détaillée du code. La version précédente de 14 octets accepte les chaînes non remplies:
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
La version 17 octets "ajoute" n'importe quel nombre de chaînes:
Essayez-le en ligne! Le lien est vers la version détaillée du code.
la source
Mathematica 50 octets
a = 543; b = 791;
(* 793 *)
la source