Escriba una función (o subprograma equivalente) para aceptar un único argumento con valor entero y devolver un valor (de tipo similar) encontrado al invertir el orden de los dígitos de base 10 del argumento.
Por ejemplo, dado 76543 retorno 34567
Escriba una función (o subprograma equivalente) para aceptar un único argumento con valor entero y devolver un valor (de tipo similar) encontrado al invertir el orden de los dígitos de base 10 del argumento.
Por ejemplo, dado 76543 retorno 34567
Respuestas:
‮n
reemplace ncon su número
Your search - , no coincidía con ningún documento.
data:text/html,&%238238;egnahcxEkcatS olleH
Pitón
int(str(76543)[::-1])
EDITAR:
Solución más corta como lo sugiere @gnibbler:
int(`76543`[::-1])
o, si lo anterior no está claro:
x=76543
int(`x`[::-1])
s[::-1]es mucho más rápido que''.join(reversed(s))
Universal (lenguaje agnóstico / independiente )
Si desea usar solo números (evite convertir el número en una cadena) y no quiere usar una biblioteca específica (para ser universal para cualquier idioma):
x = 76543 # or whatever is your number
y = 0
while x > 0:
y *= 10
y += ( x %10 )
x /= 10 # int division
Esto es python, pero podría hacerse en cualquier idioma, porque es solo un método matemático.
modcon %, es válido Python;)
y=y*10+x%10....
".|.":y
Donde y es tu valor.
|.&.":"revertir debajo de hacer", que es más o menos una traducción literal de la tarea.
Programa ejecutable completo:
N.@
¿Dónde Nestá tu número? Las reglas dicen "aceptar un único argumento con valor entero "; En Befunge solo puedes ingresar números enteros del 0 al 9.
Inspirado por la respuesta de Kiril Kirov arriba. Sentí curiosidad por las propiedades matemáticas de invertir un número, así que decidí investigar un poco.
Resulta que si trazas la diferencia n - rev(n)para los números naturales nen alguna base r, obtienes patrones como este ( (n - rev(n)) / (r - 1), for r=10, envuelto en rcolumnas, rojo denota número negativo):

Esta secuencia podría generarse como tal (pseudocódigo):
for i=1 to r:
output 0
for m=0, 1, …
for k=1 to (r-1):
for d=1 to r^m:
for i=0 to (r-1):
output (r-1) * (r+1)^m * (k - i)
Si almacena estos valores en una lista / matriz, n - arr[n]obtendría la forma inversa de n. Ahora, para "jugar matemáticamente" esto, idealmente queremos una expresión de forma cerrada que nos dé el enésimo valor en la secuencia, de modo que podamos tener una expresión de forma cerrada para resolver toda la tarea. Desafortunadamente, no he podido encontrar esa expresión ... pero parece que debería ser posible. :(
Entonces, sí, no tanto un código de golf como una curiosidad matemática, pero si hay una expresión de forma cerrada de la secuencia anterior, en realidad podría ser útil en presentaciones de golf PL adecuadas.
f=read.reverse.show.(+0)
f=read.reverse.show.(+0)?
(+0): Hombre legítimo! Aunque técnicamente no lo necesita .(+0)en absoluto, ya fque sería más polimórfico de lo que requiere el problema (se le permite devolver una salida 'de tipo similar'). Me afeitaría esos 5 personajes.
:se ri<CR>C<C-R>"
x = 13456
x.to_s.reverse
.to_s.reverse.to_icumplir con las especificaciones.
Es posible convertir un número en una cadena, luego invertir la cadena y luego convertir esa cadena de nuevo en número. Este tipo de características probablemente esté disponible en todos los idiomas. Si está buscando un método más matemático, esto podría ayudar:
int n = 76543;
int r = 0;
while (n > 0) {
r *= 10;
r += n % 10;
n /= 10;
}
1111111119
r=lambda i:int(str(i)[::-1])
print(input()[::-1])
Considero que algunos de los otros ejemplos de Python son engañosos, o al menos baratos, debido al uso de entradas codificadas y / o no satisfacen completamente los requisitos.
`-1%~
Esto toma un argumento en la pila y deja el resultado en la pila. Estoy explotando la opción "subprograma" en la especificación: si insiste en una función, son cuatro caracteres más dejándola en la pila:
{`-1%~}:r
`-1%~lugar de `-1$~(y me he tomado la libertad de editar tu respuesta para decirlo).
En scripting de shell:
echo "your number"|rev
Espero que esto haya sido útil :)
rev<<<yournumber, por ejemplo rev<<<132(para bash / zsh, no por POSIX sin embargo)
reves suficiente, la pregunta no dice que tiene que ser una función. Puede compararlo revcon una función incorporada, aunque no sea una.
Un poco tarde pero
⍎⌽⍞
Si insiste en una función
⍎∘⌽∘⍕
IntegerReverse
Esto no es competitivo, porque esta función solo se agregó en la versión 10.3 de la semana pasada, pero para completar, pensé que agregaría el único (¿creo?) Incorporado para esta tarea.
Podrías hacer lo siguiente en Java. Tenga en cuenta que esto se convierte en String y viceversa y no es una solución matemática.
public class test {
public static int reverseInt(int i) {
return Integer.valueOf((new StringBuffer(String.valueOf(i))).reverse().toString());
}
public static void main(String[] args) {
int i = 1234;
System.out.println("reverse("+i+") -> " + reverseInt(i));
}
}
43 caracteres. num como parámetro de la función:
num.toString().split('').reverse().join('')
(first(list(parse-integer(reverse(write-to-string '4279)))))
te llevará 9724.
(first(list? parse-integerYa devuelve el número.
#
+#(.*)(.)/\2#\1
#/
Técnicamente, esto no cuenta (rs fue creado a principios de este año), pero no vi ninguna otra respuesta basada en expresiones regulares, y pensé que esto estaba bien.
#
Inserte un carácter de libra al comienzo de la cadena. Esto se usa como marcador.
+#(.*)(.)/\2#\1
Anteponga continuamente el último carácter de la cadena principal al área antes del marcador hasta que no queden caracteres.
#/
Retira el marcador.