Programacion, ACM ICPC, UVa Online Judge

El link del problema es el siguiente:
1185 – Big Number

Lo que nos pide calcular básicamente es el numero de dígitos en n!
Hay una formula que nos da el numero de dígitos en un numero y es:

ceil ( log10(n))

Donde ceil es la función que hace que el numero aumente al entero próximo.
Por lo tanto tendríamos que:

ceil ( log10(n!)) = ceil( log10( 1*2*3*4*5….*n-1*n)) = ceil ( log10(1) + log10(2) + log10(3) …. + log10(n-1) + log10(n))

Así que con pre calcular los logaritmos de los números hasta 10 millones y hacer la suma acumulada, podemos obtener la respuesta a este problema.

Código en C++

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: