HDU 1018 matemáticas

Cuelgue preguntó n! ¿Cuántos dígitos como n relativamente grande, este número es difícil expresar como una comparación matemática verduras Hang, así que por favor ayuden a este ACMer talento.

Para hacer esta pregunta convertido en un problema de asistencia, Pasar a darle una fórmula

image.png

stirling fórmula se utiliza para encontrar el n! aproximación, cuando el valor de n mayor cuando la más precisa

Cuelgue también es bueno que le diga e = 2,718281828

Incluso dio una fórmula, no he visto a una persona tan buena fuera de cuestión

Entrada
La primera línea número entero uno t, grupo t olvide como t

Uno para cada entero n (1 <= n <= 1E7)

La salida de
las líneas de T, cada uno un entero que representa el n! Bits

SampleInput
2
10
20
SampleOutput
7
19
significado de las preguntas: buscar n! Bits
ideas: establece directamente el valor calculado por la fórmula, y luego conjuntos de funciones Loglo () puede ser. Este problema O (n) n términos se acumula antes de que el OKK.

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int t,n;

    cin >> t;

    while(t--)
    {
        double s=0;

        cin >> n;

        for(int i=1;i<=n;i++)
            s+=log10(i);///相加在log里转换为相乘就变成了阶乘

        cout << (int)s+1 << endl;
    }

    return 0;
}
Publicado 54 artículos originales · ganado elogios 0 · Vistas 1236

Supongo que te gusta

Origin blog.csdn.net/weixin_44144278/article/details/98804957
Recomendado
Clasificación