Dans ce golf de code, vous devez obtenir le numéro le plus proche d'un autre dans une liste.
La sortie peut être le nombre le plus proche de l'entrée.
Exemple:
value: (Input) 5 --- [1,2,3] --- 3
Et, le programme peut fonctionner avec des nombres négatifs.
Exemple:
value: (Input) 0 --- [-1,3,5] --- -1
value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers)
RÈGLES:
Comme mentionné précédemment, il doit fonctionner avec des nombres négatifs.
S'il y a deux réponses (exemple: 0 - [5, -5]), le programme donne la priorité au numéro le plus bas. (-5)
C'est le golf de code, donc le code le plus court gagne!
code-golf
math
number
array-manipulation
AlexINF
la source
la source
Réponses:
Pyth, 6 octets
Suite de tests
Saisie sous la forme suivante sur STDIN:
Explication:
la source
Rubis, 34 octets
la source
->n,a{a.min_by{|x|(n-x).abs}}
Mathematica, 12 octets
FTW intégré! Explication de Buettner: "Mathematica a une fonction intégrée
Nearest
pour cela, mais il renvoie une liste de tous les nombres liés. Par conséquent, nous devons le composer avecMin
pour rompre le lien."la source
Pyth, 8 octets
Explication
Essayez-le en ligne!
la source
JavaScript ES6,
645654 octetsEssayez-le en ligne
Merci à @Niel d' avoir économisé deux octets
Extrait de test:
la source
(i,a)=>a.sort((a,b)=>s(i-a)-s(i-b)||a-b,s=Math.abs)[0]
i=>a=>...
alorsf(i)(a)
comment vous l' appelez.input
et une liste / tableau / ... sous forme d'entiersGelée,
76 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
MATL , 10 octets
Essayez-le en ligne!
la source
Python 2, 56 octets
Obtient le numéro cible en premier
a=input()
- il doit être stocké dans une variable.Il trie ensuite l'entrée avec la fonction
lambda x:abs(a-x)
appliquée (pensezmap(lambda x:abs(a-x), input())
)Il prend ensuite la valeur minimale en cas de valeurs en double
la source
TeaScript, 10 octets
TeaScript ne prend pas en charge l'entrée de tableau, donc lors de l'exécution de la console:
TeaScript("T#y-la)░", [[1, 2, 3], 1], {}, TEASCRIPT_PROPS)
to runthis.Explication
la source
R, 42 octets
la source
Haskell, 38 octets
Exemple d'utilisation:
2 # [1,5,3]
->1
.Pour chaque élément de la liste d'entrée,
l
faites une paire de la différence absolue de l'élément avec le numéro d'entréee
et l'élément lui-même, par exemplee=2
,l=[1,5,3]
->[(1,1),(3,5),(1,3)]
. Trouvez le minimum et jetez la différence.la source
zsh,
7573717067 octetsAttend l'entrée comme arguments de ligne de commande.
Notez que les quatre espaces dans le
echo
sont censés être des tabulations, mais Stack Exchange convertit les tabulations en espaces dans toutes les publications.Non compatible Bash en raison de la
for
syntaxe.Merci à dev-null pour 2 octets!
la source
Perl 6 , 31 octets
Usage:
la source