¿Cómo calcular factorial usando una función recursiva?
El código es el siguiente:
vim test.sh
#! /bin/bash
read -p "Num:" num ?#la función de lectura lee los valores ingresados manualmente
resultado=1? #¿Para i en `seq $num`?#i en num de menor a mayor
hacer resultado=$[ $resultado * $i ]
hecho
echo "El resultado es: $resultado"
Expandido
El efecto de la función recursiva es el mismo que el efecto del método de bucle, es decir, la función recursiva es esencialmente una llamada de bucle al método Nota: Puede producirse un bucle infinito. Por lo tanto, cuando utilice funciones recursivas, asegúrese de definir los límites de la recursividad (es decir, cuándo salir del bucle).
Para calcular el factorial n! = 1 x 2 x 3 x ... x n (representado por la función fact(n)), puedes ver:
fact(n) = norte ! = 1 x 2 x 3 x ... x (n-1) x norte = (n-1)! x n = fact(n-1) x n
Por lo tanto, fact(n) se puede expresar como n x fact(n-1), solo n=1 requiere un tratamiento especial.
Por lo tanto, la forma recursiva de escribir fact(n) es:
def fact(n):
if n==1: Devuelve 1 p>
return n * fact(n - 1)
Enciclopedia Baidu - Función recursiva