Skip to content

Commit

Permalink
Merge pull request #81 from marcode24/2024-06
Browse files Browse the repository at this point in the history
✨ Add challenge-06 solution
  • Loading branch information
marcode24 authored Feb 8, 2024
2 parents bf5cf40 + 9064c15 commit bea9d0e
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 0 deletions.
14 changes: 14 additions & 0 deletions 2024/06-recursividad/README.md
Original file line number Diff line number Diff line change
@@ -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).
35 changes: 35 additions & 0 deletions 2024/06-recursividad/index.js
Original file line number Diff line number Diff line change
@@ -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));
35 changes: 35 additions & 0 deletions 2024/06-recursividad/solution.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php
// Función recursiva para imprimir números del 100 al 0
function imprimirNumeros($num) {
if ($num < 0) {
return; // La función termina cuando $num es menor que 0
}
echo $num . "\n"; // Imprime el número seguido de un salto de línea
imprimirNumeros($num - 1); // Llamada recursiva con $num decrementado en 1
}

echo "Imprimiendo números del 100 al 0:\n";
imprimirNumeros(100);

// Función recursiva para calcular el factorial de un número
function factorial($n) {
if ($n === 0 || $n === 1) {
return 1; // El factorial de 0 y 1 es 1
}
return $n * factorial($n - 1); // Llamada recursiva con $n decrementado en 1
}

$numero = 5;
echo "Factorial de $numero: " . factorial($numero) . "\n";

// Función recursiva para calcular el valor de un elemento en la sucesión de Fibonacci
function fibonacci($n) {
if ($n <= 1) {
return $n; // Si $n es 0 o 1, devuelve $n
}
return fibonacci($n - 1) + fibonacci($n - 2); // Llamada recursiva con $n decrementado en 1 y 2
}

$posicion = 6;
echo "Valor en la posición $posicion de la sucesión de Fibonacci: " . fibonacci($posicion) . "\n";
?>
33 changes: 33 additions & 0 deletions 2024/06-recursividad/solution.ts
Original file line number Diff line number Diff line change
@@ -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));
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) <br /> [![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/03-estructuras-de-datos/solution.ts) <br /> [![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) <br /> [![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/04-cadenas-de-caracteres/solution.ts) <br /> [![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) <br /> [![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/05-valor-y-referencia/solution.ts) <br /> [![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) <br /> [![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat&logo=typescript&logoColor=white)](./2024/06-recursividad/solution.ts) <br /> [![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat&logo=php&logoColor=white)](./2024/06-recursividad/solution.php) |


Difficulties legend:
🟢 Easy 🟡 Medium 🔴 Hard
Expand Down

0 comments on commit bea9d0e

Please sign in to comment.