Brayan Potosi Dominguez
printf("Calmate por favor")
😅
Francisco Angel Núñez Luna
hahaha fue muy cagado
Nicolás Bruno
ja ja jaja
Brayan Potosi Dominguez
printf("Calmate por favor")
😅
Francisco Angel Núñez Luna
hahaha fue muy cagado
Nicolás Bruno
ja ja jaja
JAVASCRIPT
function factorial_c(num){ if(num === 0){ return 1 } return (num * factorial_c(num - 1)) } let usuario = parseInt((prompt("¿Ingresa un número de 0 y no mayor a 90"))) if ( usuario < 0 ){ console.log(`El número ${usuario} no es positivo`) } else if (usuario > 90){ console.log(`El número ${usuario} es muy grande `) } else { console.log( `El factorial de ${usuario} es ${factorial_c(usuario)}`) }```
Mauricio Gomez
Python
def factorial(n): if n == 1: return 1 return n * factorial(n-1) n = int(input("Dame un numero entero: ")) print(factorial(n))```
Dario Arcos
Algunas optimizaciones a este código para que sea mas limpio y eficiente.
#include<stdio.h> long factorial(int n) { if(n == 0) return 1; return(n * factorial(n-1)); } int main(int n) { printf("Ingresa el numero a calcular: "); scanf("%d", &n); if (n<0) { printf("El numero debe ser positivo"); } else { printf("El factorial de %d! es: %ld", n, factorial(n)); } return 0; }```
Ricardo Celis
Profesormuy buena implementacion!
Juan Castro
ProfesorAdriana Ardila
¿Cómo haces para que las capturas de pantalla se vean así? ¿Qué programa usas?
Juan Castro
ProfesorPuedes usar https://cabon.now.sh. :wink:
Karen Paola Diaz Duarte
Victor Hugo Vázquez Gómez
¿Qué es la recursión? El proceso por el cual una función se llama a sí misma directa o indirectamente se llama 'recursión' y la función correspondiente es llamada 'función recursiva'. Al usar un algoritmo de recursión, ciertos problemas pueden ser resueltos más fácil.
Ejemplos de éstos problemas son: 1.- Las torres de Hanoi. 2.- Recorrido de árboles inorden, preorden, postorden. 3.- El factorial de un número. ¿Qué es la condición base en recursión? En el programa recursivo, se proporciona la solución al caso base y la solución del problema más grande se expresa en términos de problemas más grandes. ¿Cómo un problema en particular es resuelto usando la recursividad? La idea es presentar el problema en términos de uno o más problemas pequeños y añadir uno o más casos base para detener la recursión. Por ejemplo: calculamos el factorial 'n' si sabemos el factorial de 'n-1'. El caso base sería que n=0. Devolvemos 1 cuando n =0.
alexander garcia castañeda
comparto la sucesión de fibonacci
logging.basicConfig(level=logging.INFO) def fibonacci(n): if n==0: return 0 elif n==1: return 1 return fibonacci(n-1)+fibonacci(n-2) n=6 fibo=fibonacci(n) logging.info('el fibonaci de {0} es {1}'.format(n,fibo))
Fernando Reséndiz Bautista
#include <stdio.h> int factorial(int n){ if(n == 0){ return 1; } return n * factorial(n-1); } int main() { int n; do{ printf("Ingrese el numero del que quiere obtener el factorial \n"); scanf("%d", &n); }while(n<0); printf("%d! = %d\n", n, factorial(n)); return 0; }
Enrique Orozco Gaytán
Hay una extension en VSCode que sirve para identicar Paréntesis y llaves con diferentes colores:
https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer
Realmente es mucha ayuda.
Ezequiel Matías Rolón Pettinari
Mi codigo en C#
class Factorial { /// <summary> /// Funcion para calcular el factorial de un numero. /// </summary> /// <param name="numero"> El numero del que queremos saber el factorial.</param> /// <returns></returns> public static long CalcularFactorial(int numero) { long resultado = 0; if (numero < 0) { Console.WriteLine("El numero debe ser positivo."); } else { if (numero == 0) { resultado = 1; } else { return (numero * CalcularFactorial( numero - 1 )); } } return resultado; }//Final de public long CalcularFactorial(int numero) //Ejemplo calcular en Main //Calculo factorial //Console.WriteLine(Factorial.CalcularFactorial(10) ); }// Fin de: class Factorial```
Henry Gutierrez Mora
#include<stdio.h> //Declaramos varaibls long resultado; int n; long factorial(int n){ if(n == 0) return 1; else return(n* factorial(n-1)); } int main(int argc, char const *argv[]) { printf("Ingrese el numero a calcular \n"); scanf("%d",&n); if(n<0) { printf("El numero debe ser positivo \n"); } else resultado = factorial(n); printf("%d! = %ld\n", n, resultado); return 0; }```
Wilmer Diaz
En python
# Pidiendo el número al usuario number = int(input("Ingrese un valor \n")) # Estableciendo la función def factorial(number): if number==0: return 1 elif number<0: return "... Ups solo enteros positivos" else: return number*factorial(number-1) print("El factorial es {} " .format(factorial(number))) if __name__ == "__main__": factorial(number)
Alfonso Neil Jiménez Casallas
sinceramente prefiero implementar la versión iterativa del factorial antes que la versión recursiva, ya que en este último caso, la complejidad es de O(2^n) y en el primer caso es de O(n), la diferencia es mayor cuando el valor de n es muy grande
Angel Armando Martínez Blanco
Declarar variables dentro de main (locales) las limita a esa función, liberando su memoria al finalizar. Declararlas fuera (globales) las hace accesibles desde cualquier función del programa, pero ocupan memoria durante toda la ejecución.
Gabriel Obregón
✨ Factorial con recursividad en C
👉 Programar una función recursiva que calcule el factorial de un número ingresado por el usuario.
📝 Pasos del programa
🔢 1. Pedir número al usuario
❌ 2. Si es negativo → mostrar error.
✅ 3. Si es 0 o positivo → calcular factorial.
🔄 4. Usar función recursiva.
📤 5. Mostrar el resultado en pantalla.
🧩 Concepto clave
📌 Caso base
factorial(0) = 1
📌 Caso recursivo
factorial(n) = n × factorial(n - 1)
💻 Código esencial
long factorial(int n) {
if (n == 0)
return 1; // Caso base
else
return n * factorial(n-1); // Caso recursivo
}
⚙️ Estructura del programa principal
🔸 Entrada → número entero n 🔸 Condición →
🚀 Recuerda
✔️ El factorial solo existe para enteros no negativos.
✔️ La recursividad divide el problema en pasos más pequeños.
✔️ Siempre debe existir un caso base para detener la recursión.
Jose Daniel Hernandez Quiceno
No entiendo muy bien como funcionan los stacks cuando se empiezan a ejecutar al cumplirse el condicional
Entiendo que se acumulan los return (n * factorial(n-1)) pero no entiendo cual es el calculo y el flujo de datos para que al final nos entregue un Return Value correcto
Hector Esau M
Es algo así factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 Ya que resolvimos el caso"base" quedaría así factorial(2) = 2 * 1 = 2 factorial(3) = 3 * factorial(2) Recordemos que factorial(2) es igual a 2 así que se haría esto factorial(3) = 3 * 2
Juan Pablo Perez
Hola Jose Es como si se empezaran los otros procesos aparte para llegar al resultado que despues vamos a meter a la parte inicial, un buen ejercicio podría ser tratar de hacer lo que hace la maquina para comprenderlo.
Espero le sirva a alguien.
Carlos Santaniello
Danelia Sanchez Sanchez
En la función scanf, se usa el especificador de formato con el símbolo %
scanf("%d", &n);
Didier Stiven Niño Alba
Bash:
# !/bin/bash
rx_n="^[0-9]{1,4}$"
function factorial() {
$1
if [[ $1 -eq 0 ]]; then
echo 1
else
prev=$(factorial $(($1-1)))
echo $(($1*prev))
fi
}
read -p "Ingrese el numero que desea sacar factorial: " n
if [[ $n =~ $rx_n ]]; then
factorial $n
else
echo "El numero es demaciado grande o no es un numero.."
fi
Me está generando éste error al momento de compilar:
recursividad.c: In function ‘main’: recursividad.c:16:9: warning: too many arguments for format [-Wformat-extra-args] scanf("$d", &n); ^~~~
Adjunto código fuente:
#include<stdio.h> long result; int n; long factorial(int n){ if (n == 0) return 1; else return (n*factorial(n-1)); } int main(int argc, char const *argv[]) { printf("Ingrese el numero a calcular\n"); scanf("$d", &n); if (n < 0) { printf("El numero debe ser positivo\n"); } else { result = factorial(n); printf("%d! = %ld\n", n, result); } return 0; }