Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo encontrar factorial en Python?

¿Cómo encontrar factorial en Python?

Solución 1

Solución de matriz de ganado.

Primero, defina una matriz ns para almacenar n! Utilice un bucle for para agregar el valor 0 de 10000 a ns, operando así la matriz directamente en función del índice.

Luego defina longitud como "la longitud de la matriz" (use valores reales en lugar de sumar 0 automáticamente), es decir, n! El número de dígitos del resultado.

Después, el bucle for también debe usarse para la multiplicación, pero es diferente de la multiplicación directa en el Esquema 1. En el Esquema 1, el multiplicador (es decir, I) se multiplica por el número en cada dígito. Si el resultado es mayor o igual a 10, acarrear >: 0 significa que el valor de un dígito hacia adelante es acarreo. Si acarrear gt0 significa que se necesita un dígito en la "longitud" del ns actual, entonces la longitud 1 significa 1 dígito. En este caso, el acarreo juega el papel de juzgar si se debe acarrear, y la longitud significa el número de dígitos en el resultado.

n= int(input())

ns = [0 representa I(10000) en el rango]

n= int(input())

ns = [0 representa I(10000) en el rango]

Longitud = 1

ns[0] = Longitud = 1

Si n gt=2:

#Para I(2, n 1) en el rango:

# #Carry = 0

# #Rango j (longitud) dentro de:

###temp = ns[j] * i carry

###carry = int(temp/10)

###ns[j] = temp 10

# #Cuando llevar 0:

###ns[longitud] = Llevar 10

# # #length=1

###carry = int(carry/10)

Y longitud gt0:

#length-=1

p>

#print(ns[length], end= ' ')

Reemplace # con el espacio que desea ejecutar.

¡Si ingresas 1000, calcula 1000!

Solución 2

Imprimir()

M=int(input("¡Calcula m!, ingresa el número entero m: "))

Importar matemáticas

a = sum([math . log 10(I)for I in range(1, m 1)])

b=int(a)

c=a-b

Imprimir (f "{ m }!={10**c}*10^{b}')