Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Zodiak98 en 22 Julio 2014, 20:26 pm



Título: [Ayuda] Redondeo en C++
Publicado por: Zodiak98 en 22 Julio 2014, 20:26 pm
Ya logré resolverlo, gracias. :)
Si un moderador ve este, por favor cierre el tema. n.n


Título: Re: [Ayuda] Redondeo en C++
Publicado por: CalgaryCorpus en 22 Julio 2014, 20:57 pm
n2 es siempre una potencia de 10?

Si es asi esto sugiero:
- Sumar la mitad de n2 a n1
- Calcular el resto de la division entre n1 y n2 usando el modulo
- Restarle ese resto a n1

1424, 10:
- 1424 + 5 = 1429
- 1429 % 10 = 9
- 1429 - 9 = 1420

2636, 100:
- 2636 + 50 = 2686
- 2686 % 100 = 86
- 2686 - 86 = 2600



Título: Re: [Ayuda] Redondeo en C++
Publicado por: Zodiak98 en 22 Julio 2014, 21:18 pm
n2 es siempre una potencia de 10?

Si es asi esto sugiero:
- Sumar la mitad de n2 a n1
- Calcular el resto de la division entre n1 y n2 usando el modulo
- Restarle ese resto a n1

1424, 10:
- 1424 + 5 = 1429
- 1429 % 10 = 9
- 1429 - 9 = 1420

2636, 100:
- 2636 + 50 = 2686
- 2686 % 100 = 86
- 2686 - 86 = 2600



Hehe no, error mío. En el segundo ejemplo es 100, no 10.


Título: Re: [Ayuda] Redondeo en C++
Publicado por: Blaster en 22 Julio 2014, 22:08 pm
Hehe no, error mío. En el segundo ejemplo es 100, no 10.

Yo creo que con la solución que propuso CalgaryCorpus es mas que suficiente si asumimos que n2 siempre es potencia de 10 cosa que aun no has aclarado.


Título: Re: [Ayuda] Redondeo en C++
Publicado por: CalgaryCorpus en 22 Julio 2014, 22:13 pm
Ojo que  Redondeo != Truncado, por lo que la suma de n2 / 2 es importante


Título: Re: [Ayuda] Redondeo en C++
Publicado por: leosansan en 23 Julio 2014, 08:03 am
Para que no se diga   :rolleyes:  que no hay más opciones  :o  mi propuesta  :silbar: :

Código
  1. n1 = ( n1 % 100 ) < 50 ? 100 * ( n1 / 100 ) : 100 + 100 * ( n1  / 100 ) ;

donde 100 se puede sustituir por n2 supuesta potencia de 10:

Código
  1. n1 = ( n1 % n2 ) < n2 / 2 ? n2 * ( n1 / n2 ) : n2 + n2 * ( n1 / n2 ) ;



¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/simba1.gif)




Título: Re: [Ayuda] Redondeo en C++
Publicado por: engel lex en 23 Julio 2014, 08:08 am
Ya logré resolverlo, gracias. :)
Si un moderador ve este, por favor cierre el tema. n.n

no destruyas el tema, deja la pregunta como estaba en lugar de que alguien más se interese en algo similar y usa el boton para marcar el tema como resuelto


Título: Re: [Ayuda] Redondeo en C++
Publicado por: leosansan en 4 Agosto 2014, 23:18 pm
no destruyas el tema, deja la pregunta como estaba en lugar de que alguien más se interese en algo similar y usa el boton para marcar el tema como resuelto

Totalmente de acuerdo y además no dice cómo logro resolverlo por si a otros usuarios le puede resultar útil.

Ante tanto desdén respondo con otra opción:

Código
  1. n1 = ( ( n1 + n2 / 2 ) / n2 > ( n1 / n2 ) )  ?  ( n1 / n2 ) * n2 + n2 : ( n1 / n2 ) * n2 ;

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/simba2.gif)