[Ayuda] Redondeo en C++

Iniciado por Zodiak98, 22 Julio 2014, 20:26 PM

0 Miembros y 1 Visitante están viendo este tema.

Zodiak98

Ya logré resolverlo, gracias. :)
Si un moderador ve este, por favor cierre el tema. n.n

CalgaryCorpus

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

Aqui mi perfil en LinkedIn, invitame un cafe aqui

Zodiak98

Cita de: 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



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

Blaster

#3
Cita de: Zodiak98 en 22 Julio 2014, 21:18 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.

CalgaryCorpus

Ojo que  Redondeo != Truncado, por lo que la suma de n2 / 2 es importante
Aqui mi perfil en LinkedIn, invitame un cafe aqui

leosansan

#5
Para que no se diga   :rolleyes:  que no hay más opciones  :o  mi propuesta  :silbar: :

Código (cpp) [Seleccionar]
n1 = ( n1 % 100 ) < 50 ? 100 * ( n1 / 100 ) : 100 + 100 * ( n1  / 100 ) ;

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

Código (cpp) [Seleccionar]
n1 = ( n1 % n2 ) < n2 / 2 ? n2 * ( n1 / n2 ) : n2 + n2 * ( n1 / n2 ) ;




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





engel lex

Cita de: Zodiak98 en 22 Julio 2014, 20:26 PM
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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

leosansan

Cita de: engel lex en 23 Julio 2014, 08:08 AM
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 (cpp) [Seleccionar]
n1 = ( ( n1 + n2 / 2 ) / n2 > ( n1 / n2 ) )  ?  ( n1 / n2 ) * n2 + n2 : ( n1 / n2 ) * n2 ;

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