From 2c2ccc7d39b1e315a3291ed3e4beea90ca221162 Mon Sep 17 00:00:00 2001 From: Marco Cruz Date: Tue, 6 Feb 2024 15:52:45 -0600 Subject: [PATCH 1/4] :sparkles: Add challenge-06 solution --- 2024/06-recursividad/README.md | 14 ++++++++++++++ 2024/06-recursividad/index.js | 35 ++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 2024/06-recursividad/README.md create mode 100644 2024/06-recursividad/index.js diff --git a/2024/06-recursividad/README.md b/2024/06-recursividad/README.md new file mode 100644 index 0000000..3b27c35 --- /dev/null +++ b/2024/06-recursividad/README.md @@ -0,0 +1,14 @@ +# Reto 06: Recursividad + +## Enunciado + +EJERCICIO: + +Entiende el concepto de recursividad creando una función recursiva que imprima números del 100 al 0. + +DIFICULTAD EXTRA (opcional): + +Utiliza el concepto de recursividad para: + +- Calcular el factorial de un número concreto (la función recibe ese número). +- Calcular el valor de un elemento concreto (según su posición) en la sucesión de Fibonacci (la función recibe la posición). diff --git a/2024/06-recursividad/index.js b/2024/06-recursividad/index.js new file mode 100644 index 0000000..184198a --- /dev/null +++ b/2024/06-recursividad/index.js @@ -0,0 +1,35 @@ +/* eslint-disable no-console */ +/* eslint-disable max-len */ +// Función recursiva para imprimir números del 100 al 0 +function imprimirNumeros(num) { + if (num < 0) { + return; + } + console.log(num); + imprimirNumeros(num - 1); +} + +console.log('Imprimiendo números del 100 al 0:'); +imprimirNumeros(100); + +// Función recursiva para calcular el factorial de un número +function factorial(n) { + if (n === 0 || n === 1) { + return 1; + } + return n * factorial(n - 1); +} + +const numero = 5; +console.log(`Factorial de ${numero}:`, factorial(numero)); + +// Función recursiva para calcular el valor de un elemento en la sucesión de Fibonacci +function fibonacci(n) { + if (n <= 1) { + return n; + } + return fibonacci(n - 1) + fibonacci(n - 2); +} + +const posicion = 6; +console.log(`Valor en la posición ${posicion} de la sucesión de Fibonacci:`, fibonacci(posicion)); From 9d1e39848bb717b4c58ad01f5c4896e0923d2197 Mon Sep 17 00:00:00 2001 From: Marco Cruz Date: Wed, 7 Feb 2024 15:23:40 -0600 Subject: [PATCH 2/4] :sparkles: Add typescript solution challenge-06 --- 2024/06-recursividad/solution.ts | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 2024/06-recursividad/solution.ts diff --git a/2024/06-recursividad/solution.ts b/2024/06-recursividad/solution.ts new file mode 100644 index 0000000..4e7f110 --- /dev/null +++ b/2024/06-recursividad/solution.ts @@ -0,0 +1,33 @@ +// Función recursiva para imprimir números del 100 al 0 +function imprimirNumeros(num: number): void { + if (num < 0) { + return; + } + console.log(num); + imprimirNumeros(num - 1); +} + +console.log('Imprimiendo números del 100 al 0:'); +imprimirNumeros(100); + +// Función recursiva para calcular el factorial de un número +function factorial(n: number): number { + if (n === 0 || n === 1) { + return 1; + } + return n * factorial(n - 1); +} + +const numero: number = 5; +console.log(`Factorial de ${numero}:`, factorial(numero)); + +// Función recursiva para calcular el valor de un elemento en la sucesión de Fibonacci +function fibonacci(n: number): number { + if (n <= 1) { + return n; + } + return fibonacci(n - 1) + fibonacci(n - 2); +} + +const posicion: number = 6; +console.log(`Valor en la posición ${posicion} de la sucesión de Fibonacci:`, fibonacci(posicion)); From cc6fc96b46c96fae394c2a1da3944dcd5a2951a2 Mon Sep 17 00:00:00 2001 From: Marco Cruz Date: Wed, 7 Feb 2024 15:24:16 -0600 Subject: [PATCH 3/4] :sparkles: Add php solution challenge-06 --- 2024/06-recursividad/solution.php | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 2024/06-recursividad/solution.php diff --git a/2024/06-recursividad/solution.php b/2024/06-recursividad/solution.php new file mode 100644 index 0000000..79ab0ce --- /dev/null +++ b/2024/06-recursividad/solution.php @@ -0,0 +1,35 @@ + From 9064c15779b42b2de0db9553478f21555699c8d5 Mon Sep 17 00:00:00 2001 From: Marco Cruz Date: Wed, 7 Feb 2024 15:31:04 -0600 Subject: [PATCH 4/4] :memo: Update README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6a6f8f1..9073ab1 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,8 @@ npm run test 'year'/'folder-name'/solution.test.js | 03 | [Estructuras de Datos](https://retosdeprogramacion.com/roadmap/) | 🟡 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/03-estructuras-de-datos/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/03-estructuras-de-datos/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/03-estructuras-de-datos/solution.php) | | 04 | [Cadena de Caracteres](https://retosdeprogramacion.com/roadmap/) | 🟡 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/04-cadenas-de-caracteres/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/04-cadenas-de-caracteres/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/04-cadenas-de-caracteres/solution.php) | | 05 | [Valor y Referencia](https://retosdeprogramacion.com/roadmap/) | 🟢 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/05-valor-y-referencia/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/05-valor-y-referencia/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/05-valor-y-referencia/solution.php) | +| 06 | [Recursividad](https://retosdeprogramacion.com/roadmap/) | 🔴 | [![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?style=flat&logo=javascript&logoColor=black)](./2024/06-recursividad/index.js)
[![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/06-recursividad/solution.ts)
[![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/06-recursividad/solution.php) | + Difficulties legend: 🟢 Easy 🟡 Medium 🔴 Hard