Écrivez une fonction (ou un sous-programme équivalent) pour accepter un seul argument de valeur entière et renvoyer une valeur (typée de manière similaire) trouvée en inversant l'ordre des chiffres de base 10 de l'argument.
Par exemple, étant donné 76543, retournez 34567
Réponses:
HTML
217 caractères (1 caractère si je suis effronté ...)remplacer
n
par votre numérola source
Your search -
- ne correspond à aucun document.data:text/html,&%238238;egnahcxEkcatS olleH
Python
int(str(76543)[::-1])
MODIFIER:
Solution plus courte comme suggéré par @gnibbler:
ou, si ce qui précède n'est pas clair:
la source
s[::-1]
est beaucoup plus rapide que''.join(reversed(s))
Universel ( indépendant du langage / indépendant )
Si vous souhaitez utiliser uniquement des nombres (évitez de convertir le nombre en chaîne) et ne souhaitez pas utiliser une bibliothèque spécifique (pour être universelle pour n'importe quelle langue):
C'est du python, mais cela pourrait être fait dans n'importe quel langage, car c'est juste une méthode mathématique.
la source
mod
par%
, c'est Python valide;)y=y*10+x%10
....a - (n * int(a/n))
place dea mod n
. De plus, si vous regardez ici , l'opération de module est implémentée différemment dans chaque langue. (Voir le tableau à droite.)Perl 6
ou:
pour le code tapé dynamiquement.
Les nombres ont obtenu des méthodes de chaîne en raison de la conception du langage.
la source
J - 6 caractères + variable
Où y est votre valeur.
la source
|.&.":
"reverse under do" qui est à peu près une traduction littérale de la tâche.APL (3)
Usage:
la source
PHP, 9 caractères
Pour faire court où
N
est une constante:la source
Befunge (3 personnages)
Programme exécutable complet:
Où
N
est ton numéro. Les règles disent "accepter un seul argument de valeur entière "; Dans Befunge, vous ne pouvez saisir que des entiers de 0 à 9.la source
Indépendant de la langue / mathématiques
Inspiré par la réponse de Kiril Kirov ci-dessus. Je suis devenu curieux de connaître les propriétés mathématiques de l'inversion d'un nombre, j'ai donc décidé d'enquêter un peu.
Il s'avère que si vous tracez la différence
n - rev(n)
pour les nombres naturelsn
dans une baser
, vous obtenez des modèles comme celui-ci ((n - rev(n)) / (r - 1)
, pourr=10
, encapsulé dans lesr
colonnes, le rouge indique un nombre négatif):Cette séquence pourrait être générée en tant que telle (pseudocode):
Si vous stockez ces valeurs dans une liste / tableau,
n - arr[n]
vous obtiendrez alors la forme inversée den
. Maintenant, pour "jouer au golf mathématiquement", nous voudrions idéalement une expression de forme fermée qui nous donne la valeur n: e dans la séquence, afin que nous puissions avoir une expression de forme fermée pour résoudre la tâche entière. Malheureusement, je n'ai pas pu trouver une telle expression ... mais il semble que cela devrait être possible. :(Donc oui, pas tant un golf de code qu'une curiosité mathématique, mais s'il y a une expression sous forme fermée de la séquence ci-dessus, cela pourrait en fait être utile dans les soumissions de golf PL appropriées.
la source
Haskell,
2824 caractèresla source
f=read.reverse.show.(+0)
?(+0)
: Homme légitime! Bien que techniquement, vous n'ayez pas besoin du.(+0)
tout, car cef
serait plus polymorphe que ce que le problème nécessite (il est permis de renvoyer une sortie de type similaire). Je raserais ces 5 personnages.Vim
17 caractèresla source
Scala - 33 caractères
la source
Rubis (14)
la source
.to_s.reverse.to_i
conforme aux spécifications.Il est possible de convertir un nombre en chaîne, puis d'inverser la chaîne, puis de reconvertir cette chaîne en nombre. Ce type de fonctionnalité est probablement disponible dans toutes les langues. Si vous recherchez une méthode plus mathématique, cela peut vous aider:
la source
1111111119
Python 3+
Forme de fonction: 28 caractères
Formulaire (sous) programme: 25 caractères
Je considère que certains des autres exemples Python trichent, ou du moins pas cher, en raison de l'utilisation d'une entrée codée en dur et / ou ne répondant pas pleinement aux exigences.
la source
Golfscript, 5 caractères
Cela prend un argument sur la pile et laisse le résultat sur la pile. J'exploite l'option "subprogram" dans la spécification: si vous insistez sur une fonction, c'est quatre caractères de plus en la laissant sur la pile:
la source
`-1%~
plutôt que`-1$~
(et j'ai pris la liberté de modifier votre réponse pour le dire).Dans le script shell:
J'espère que cela vous a été utile :)
la source
rev<<<yournumber
, par exemplerev<<<132
(pour bash / zsh, et non par Posix si)rev
suffit, la question ne dit pas qu'il doit être une fonction. Vous pouvez comparerrev
à une fonction intégrée, même si elle n'en est pas une.Un peu tard mais
APL, 3
Si vous insistez sur une fonction
la source
Mathematica, 14 octets
Ce n'est pas concurrent, car cette fonction n'a été ajoutée que dans la version 10.3 de la semaine dernière, mais pour être complet, j'ai pensé ajouter la seule (jamais je pense?) Intégrée pour cette tâche.
la source
Vous pouvez effectuer les opérations suivantes en Java. Notez que cela se convertit en chaîne et en arrière et n'est pas une solution mathématique.
la source
Lua
Les nombres et les chaînes sont interchangeables, c'est donc trivial
la source
Celui - ci EFFECTIVEMENT prend une entrée, contrairement à certains des autres:
Python btw.
la source
Actionscript
43 caractères. num comme paramètre de la fonction:
la source
Sensationnel
la source
Perl, 11 caractères
Le
p
drapeau est nécessaire pour que cela fonctionne, inclus dans le décompte.Usage:
la source
p
drapeau est inclus dans le décompteClojure (42 caractères)
Exemple d'utilisation:
renvoie 12389
la source
Lisp commun - 60 caractères
vous obtiendrez 9724.
la source
(first(list
?parse-integer
renvoie déjà le numéro.K, 3 octets:
Évaluez (
.
) l'inverse (|
) de la conversion en chaîne ($
).Exemple d'utilisation:
la source
rs , 20 octets
Techniquement, cela ne compte pas (rs a été créé plus tôt cette année), mais je n'ai vu aucune autre réponse basée sur des expressions rationnelles, et j'ai pensé que c'était bien.
Démo en direct.
Explication:
Insérez un caractère dièse au début de la chaîne. Ceci est utilisé comme marqueur.
Ajoutez continuellement le dernier caractère de la chaîne principale à la zone avant le marqueur jusqu'à ce qu'il ne reste plus de caractères.
Retirez le marqueur.
la source
mIRC 4,45 (35 octets)
la source