Cita de: Blaster en 4 Agosto 2014, 01:22 AM
Seguro que obtienes uno ?... el seguimiento que realizas al proceso es equivocado, la multiplicación de 3 * 5 es realizada previamente y el resultado es recibido por la función para calcular el logaritmo del mismo.Código (cpp) [Seleccionar]digitos ( 3 * 5 ) = log10 ( 3 * 5 ) = log10 ( 15 ) = 1.17 + 1 = 2
Creo que no has entendido mi exposición. Aclaro lo que decía.
En el caso de que en lugar de realizar la operación de 3 *5 apliques a la misma logaritmos, es decir :
Código (cpp) [Seleccionar]
log10 ( 3 * 5 ) = log10 (3) + log10 (5) = 0 + 0
es cuando se llegaría a un resultado incoherente si se trabaja con enteros en lugar de flotantes.
Para el caso del factorial que exponía, como no vamos a calcularlo directamente, haríamos:
Código (cpp) [Seleccionar]
log10(1500!) = log10(1500) + log10(1499) +...+.log10(3) + log10(2)
Y si no tenemos en cuenta el trabajar con floats daría un resultado erróneo, toda vez que en enteros sería:
Código (cpp) [Seleccionar]
.....log10(8) + log10(9) = 0
Cuando en realidad deberían dar:
Código (cpp) [Seleccionar]
.....log10(8) + log10(9)= 1.85...==> 1
Y así sucesivamente.
Conste que era sólo una observación, no pretendía en ningún momento hacer crítica a tu comentario.
¡¡¡¡ Saluditos! ..... !!!!