Multiplo de 10

31/07/2007 - 17:36 por Juan Suarez | Informe spam
Hola que tal?

Quisiera saber como puedo llevar un numero entero a su multiplo de 10 por
encima. Me explico:

72 --> 80
85 --> 90
91 --> 100

Siempre buscando el multiplo por encima.


De antemano agradezco la ayuda que me puedan brindar.


Juan Suárez
sistemasgyw@une.net.co

Preguntas similare

Leer las respuestas

#6 Ricardo Passians
01/08/2007 - 23:24 | Informe spam
También la otra variante de RFOG creo podría extenderse así:

numero=( (int)(numero/10) + Math.Sign(numero%10) ) *10;


Saludos

Ricardo Passians
Respuesta Responder a este mensaje
#7 RFOG
02/08/2007 - 00:03 | Informe spam
En Wed, 01 Aug 2007 23:24:19 +0200, Ricardo Passians
escribió:

También la otra variante de RFOG creo podría extenderse así:

numero=( (int)(numero/10) + Math.Sign(numero%10) ) *10;


Saludos

Ricardo Passians





Ya que ambos fallan, yo haría, por lo menos para la primera:

int temp=numero%10;
if(temp!=0)
numero+-temp;

Cambiamos una comparación si no es cero (que la máquina al final
ejecutaría un "JNE") más una variable que si el compilador es listo la
colocará en un registro (del mismo modo que tiene que meter en un registro
el resultado de numero%10 del original), por el segundo módulo añadido.

La segunda posiblemente también tenga una solución similar.




Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
=Gallo que no canta, algo tiene en
la garganta.
Respuesta Responder a este mensaje
#8 Ricardo Passians
02/08/2007 - 00:21 | Informe spam
Hola RFOG,

Ciertamente habría que ver lo "smart" que puede ser el compilador :) pero,
sin entrar en muchos detalles, te resumo las dos extensiones que propuse a
tus soluciones, sólo para manejar la excepción que mencionó Octavio, si es
que era realmente un requisito del problema:

1) numero+= ( 10 - (numero % 10) ) % 10

2) numero=( (int)(numero/10) + Math.Sign(numero%10) ) *10


Saludos

Ricardo Passians
Respuesta Responder a este mensaje
#9 Octavio Hernandez
02/08/2007 - 09:50 | Informe spam
Hoal, Rafa y Ricardo!

De las dos q propone Ricardo arriba me quedo con la primera, creo q ya meter
llamadas a funciones es demasiado...
Pero creo q yo en un programa mí pondría dos instrucciones:

int resto10 = numero % 10;
if (resto10 != 0)
numero = numero / 10 + 1;

O también podría ser un if inmediato:

numero = numero % 10 == 0 ? numero : numero / 10 + 1;

Abrazo - Octavio



"RFOG" wrote in message
news:
En Wed, 01 Aug 2007 23:24:19 +0200, Ricardo Passians
escribió:

También la otra variante de RFOG creo podría extenderse así:

numero=( (int)(numero/10) + Math.Sign(numero%10) ) *10;


Saludos

Ricardo Passians





Ya que ambos fallan, yo haría, por lo menos para la primera:

int temp=numero%10;
if(temp!=0)
numero+-temp;

Cambiamos una comparación si no es cero (que la máquina al final
ejecutaría un "JNE") más una variable que si el compilador es listo la
colocará en un registro (del mismo modo que tiene que meter en un registro
el resultado de numero%10 del original), por el segundo módulo añadido.

La segunda posiblemente también tenga una solución similar.




Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
=Gallo que no canta, algo tiene en
la garganta.
Respuesta Responder a este mensaje
#10 Junior
02/08/2007 - 13:04 | Informe spam
Muy interesante este ejercicio.


De las dos q propone Ricardo arriba me quedo con la primera, creo q ya
meter llamadas a funciones es demasiado...



La funcion Math.Sign que el pone se puede convertir a:

numero%10=0?0:1 si es que el compilador no haga lo mismo.

Pero creo q yo en un programa mí pondría dos instrucciones:

int resto10 = numero % 10;
if (resto10 != 0)
numero = numero / 10 + 1;

O también podría ser un if inmediato:

numero = numero % 10 == 0 ? numero : numero / 10 + 1;




Multiplicando luego por 10, no?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida