Utilice la programación shell de Linux para encontrar el factorial de M-N, el usuario ingresa M, N
echo "Ingrese los números enteros M, N (Mgt;N)"
echo "M:"
leer M
#Determinar si M no es nulo y es un número entero
si [ -z $M ]
entonces
echo "M debe ser no nulo"
elif ! p>
salida 1
elif ! [[ $M =~ ^-?[0-9]*$ ]]
entonces
echo "M debe ser un número entero"
salida 1
fi
echo "N:"
leer N
#Determinar si N es un número entero que no está vacío y es menor que N
leer N
p>
si [ -z $N ]
entonces
echo "N debe ser no nulo"
salida 1
elif! [[ $N =~ ^-?[0-9]*$ ]]
luego
echo "N debe ser un número entero"
salir 1
elif [ $M -le $N ]
luego
echo "N debe ser menor que M"
salida 1 p>
fi
let "base = M-N"
result=1
# Función factorial, introduce el resultado para conseguir un crecimiento lineal de la operación
resultado=1
p>
fac(){
base=$1
resultado=$2
si [ $base -gt 0 ]
entonces
deja "resultado *= base"
deja "base -= 1"
fac $base $resultado
fi
}
#Calcular factorial
fac $base $resultado
echo "El factorial de M-N es $resultado"
salir 0
Leí mal la pregunta la última vez