Défi
En donnant une somme arithmétique valide avec quelques nombres manquants, affichez l'expression complète.
Exemple:
1#3 123
+ 45# => + 456
-------- --------
579 579
Contribution
- Le format d'expression peut être un tableau
["1#3", "45#", "579"]
, une chaîne"1#3+45#=579"
ou 3 entréesf("1#3","45#","579")
Production
- Identique à l'entrée
- Vous n'avez pas besoin de sortir le résultat
Remarques
- Les nombres manquants seront représentés à l'aide de
#
ou tout autre caractère non numérique constant que vous souhaitez - Supposons que le résultat n'aura pas de numéro manquant
- Supposons que les entrées / sorties consistent en 2 termes et un résultat final
- Supposons à la fois terme> 0 et résultat> = 2
- Il peut y avoir plusieurs solutions. Vous pouvez sortir n'importe qui tant que le résultat de la somme correspond
Cas de test avec éventuellement des sorties (joli format)
#79 879
+ 44# => + 444
-------- --------
1323 1323
5#5 555
+ 3#3 => + 343
-------- --------
898 898
# 1
+ # => + 1
-------- --------
2 2
### 998
+ ### => + 1 PD: there are a lot of possible outputs for this one
-------- --------
999 999
123 123
+ # => + 1
-------- --------
124 124
9 9
+ #6 => + 46
-------- --------
55 55
#123651 1123651
+ #98# => + 7981
------------ -----------
1131632 1131632
Les règles de code-golf standard s'appliquent
code-golf
arithmetic
integer
Luis felipe De jesus Munoz
la source
la source
=
échangés? par exemple579=1#3+45#
Réponses:
Brachylog ,
2216 octetsEssayez-le en ligne!
-6 octets grâce à @Fatelize
Explication
la source
{"#"∧Ị∋|}ᵐ²ịᵐ.k+~t
est de 4 octets plus court. Je ne sais pas pourquoi vous avez fait quelque chose d'aussi compliqué sur votre carte.Ṣ
au lieu de"#"
lequel vous économiserez deux octets supplémentaires.JavaScript (ES6),
7457 octetsPrend l'entrée comme
(a)(b)(result)
, où a et b sont des chaînes avec.
des chiffres inconnus et le résultat est un entier. Renvoie un tableau de 2 entiers.Essayez-le en ligne!
Commenté
la source
-~n
ne pouvait pas être justen+1
et commentF=(c,n)=>
était utilisé. Maintenant que vous avez ajouté une explication, tout cela a du sens.c
est la troisième entrée,n
n'est pas définie (et~undefined
devient-1
différenteundefined+1
). Tout est clair maintenant (et ce n'est pas quelque chose que je peux porter sur Java malheureusement, c'est principalement pourquoi j'ai essayé de le comprendre xD). PS: J'ai déjà voté hier, donc je viens de voter une de vos autres réponses (que je n'ai pas déjà votée, pas beaucoup disponible ..); pnull
, le convertir manuellement en-1
. Cependant, Java a une limite StackOverflow récursive (très) limitée, donc utiliser une méthode récursive avec un caractère aléatoire en espérant qu'elle se terminera correctement dans environ 1024 appels récursifs ne fonctionnera pas de toute façon en Java. Et bien. J'ai surévalué votre conseil. Bon week-end! :)###+###=999
, vos chances sont de 1 sur 1000. Donc, avec 1024 itérations, vous devriez réussir un peu plus souvent que vous échouez. :)Matlab,
143134132119115 octets-4 octets grâce à @Luismendo
Essayez-le en ligne
Assez gros et assez stupide. Il remplace simplement tout
#
par des chiffres aléatoires jusqu'à ce qu'il trouve les bons.la source
R ,
6751 octetsRock simple et échelles horriblement, juste grep toutes les combinaisons de somme. Utilisation "." pour les chiffres inconnus. Il ne trouvera pas la même réponse que le cas de test numéro 4, mais il donnera une réponse possible, qui suit la lettre des règles donnée.
-16 octets par grepping après avoir formé la sortie et remplacé
paste
par l'?
opérateur.Essayez-le en ligne!
la source
?
... Je pense que c'est une première. au fait, j'ai oublié si je vous l'ai déjà dit, mais nous essayons de faire nommer R pour la langue du mois de septembre - vous pouvez voter en amont si ce n'est déjà fait.Fusain , 32 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
Poussez deux chaînes
0
vers la liste vide prédéfinieu
pour lancer la boucle while.Répétez pendant que la somme de la conversion des valeurs en
u
entier n'est pas égale au résultat souhaité.Créez un tableau des deux entrées et mappez dessus.
Remplacez chacun
#
par un chiffre aléatoire et attribuez le résultat àu
.Imprimer le résultat justifié à droite. (Justifié à gauche serait juste
υ
pour une sauvegarde de 4 octets.)la source
Gelée , 20 octets
Essayez-le en ligne!
la source
05AB1E (hérité),
2320 octets-3 octets grâce à @Emigna .
Les chiffres inconnus sont des espaces (
). L'ordre d'entrée doit être: résultat attendu; chaîne la plus longue; chaîne la plus courte.
Essayez-le en ligne .
Explication:
la source
Perl 6 ,
8174 octets-7 octets grâce à nwellnhof!
Essayez-le en ligne!
Bloc de code anonyme qui prend l'entrée comme une chaîne contenant une expression arithmétique, par exemple "12 # + 45 # = 579". Remplace chacun
#
par des permutations possibles de chiffres, remplace le=
par==
et trouve le premier résultat valide.Explication:
la source
S:g[\#]=$a[$++]
lieu detrans
pour 74 octets .S///
ce genre de syntaxe! Merci!APL (Dyalog Unicode) , 22 octets
Essayez-le en ligne!
la source
Java 10,
203198193 octetsEssayez-le en ligne.
Explication:
la source
C (gcc) ,
228213203172170 octets-15 octets grâce à @ceilingcat . Je n'en ai jamais utilisé
index
auparavant.-10 octets grâce à @Logem . Magie du préprocesseur
appel refactorisé à
exit(0)
avec met comme paramètre.Essayez-le en ligne!
la source
-DX=c=index(v
, avec-DX=(c=index(v
, lien TIO dans mon dernier commentaire.C # .NET,
225220196 octetsPort de ma réponse Java 10 .
(Je suis très rouillé dans le golf C # .NET, donc je peux certainement y jouer ..)
-3 octets implicitement grâce à @ user82593 et à cette nouvelle astuce C # qu'il a ajoutée .
-29 octets grâce à @hvd .
Essayez-le en ligne.
Explication:
la source
using System;
place, il est plus court quenamespace System{}
.using System.*;
des importations similaires en Java, mais cela n'a pas fonctionné. J'ai oublié de retirer la.*
partie .. Merci pour les -5 octets.int.Parse
(-4), utilisernew System.Random()
(+7) et supprimerusing System;
(-13) pour enregistrer 10 autres octets. :) De plus, vous n'en avez pas besoin.ToCharArray()
, cela enlève 14 octets de plus.int.Parse
vsSystem.Int32.Parse
... C'est fondamentalement la même chose queSystem.String
etstring
.. Et je ne savais pas qu'il était possible de parcourir les personnages sans le.ToCharArray()
. Merci pour encore -24 octets. : DPython 3 ,
121155152149 149 octetsEssayez-le en ligne!
+34 Nouvelle solution avec regex pour contourner le fait que python ne prend pas en charge les nombres avec des zéros en tête.
-3 merci à @Jonathan Frech
L'ancienne solution ne fonctionne pas si # est le premier caractère d'un nombre quelconque (car eval n'accepte pas les zéros en tête) et n'est donc pas valide :(
Essayez-le en ligne!
la source
PHP, 112 octets
solution de force brute boiteuse
prend la chaîne en entrée, s'arrête à la première solution. Exécuter en tant que pipe avec
-nR
ou l' essayer en ligne .la source
Powershell, 91 octets
Le script trouve toutes les solutions. Le nombre total d'itérations est de 10 pour le nombre de caractères
#
. La profondeur de récursivité est égale au nombre de caractères#
.Script de test:
Powershell, 'Supposons que les deux termes> 0' soient obligatoires, 110 octets
la source