Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo calcular factorial usando una función recursiva?

¿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

return n * fact(n - 1)

Enciclopedia Baidu - Función recursiva