¡Hola Girl! 🙋♀️ Dentro de nuestra sección de #RetosDeProgramación hoy te traemos un ejercicio simple, pero que pondrá a trabajar tu lógica. Veremos como realizar una suma de subconjuntos, nosotros usamos PHP, pero tú puedes elegir el lenguaje con el que te sientas más cómoda.
Tabla de Contenido
¿Cuál es el reto?
Dado un conjunto de números enteros positivos y un número objetivo, encontraremos todos los subconjuntos del conjunto dado cuya suma sea igual al número objetivo.
Por ejemplo, dado el conjunto [2, 4, 6, 8] y el número objetivo 10, los subconjuntos que suman 10 son: [2, 8] y [4, 6].
¿Qué debes hacer?
Tu tarea es escribir una función en el lenguaje de programación de tu elección que resuelva este problema. La función debe recibir como entrada el conjunto de números y el número objetivo, y debe devolver una lista de todos los subconjuntos que cumplan con la condición.

¡Es tu turno! Abre tu editor de código favorito y pon en práctica tus habilidades de programación.
Nuestra propuesta de solución
<?php // Definición del conjunto de números y el objetivo $conjunto = array(2,4,6,8); $objetivo = 10; // Llamada a la función para encontrar subconjuntos que sumen el objetivo encontrarSubconjuntos($conjunto, $objetivo); // Función para encontrar subconjuntos que sumen el objetivo function encontrarSubconjuntos($conjunto, $objetivo){ // Obtener la cantidad de elementos en el conjunto $count = count($conjunto); // Iterar sobre el conjunto for ($i = 0; $i < $count; $i++) { // Iterar sobre los elementos siguientes en el conjunto for ($w = $i + 1; $w < $count; $w++) { // Calcular la suma de los dos elementos $suma = $conjunto[$i] + $conjunto[$w]; // Verificar si la suma es igual al objetivo if ($suma == $objetivo) { // Imprimir los dos elementos que suman el objetivo echo $conjunto[$i] . "," . $conjunto[$w] . "<br>"; } } } } ?>
- Primero definimos el conjunto de números en un array. En este ejemplo, el conjunto es
[2, 4, 6, 8]
y el objetivo al que se desea llegar mediante la suma de elementos del conjunto. En este caso, el objetivo es10
. - Enseguida llamamos a la función
encontrarSubconjuntos()
pasando el conjunto y el objetivo como parámetros. - Definimos la función
encontrarSubconjuntos()
que toma el conjunto y el objetivo como parámetros. - Calculamos la cantidad de elementos en el conjunto utilizando la función
count()
, y la almacenamos en la variable$count
. Esto evita realizar la llamada acount($conjunto)
en cada iteración del bucle. - Iniciamos un bucle
for
que itera sobre el conjunto. La variable$i
representa el índice del primer elemento en la suma. - Enseguida iniciamos otro bucle
for
que itera sobre los elementos siguientes en el conjunto. La variable$w
representa el índice del segundo elemento en la suma. Al iniciar el bucle en$i + 1
, se evitan duplicados y combinaciones repetidas. - Ahora calculamos la suma de los dos elementos utilizando los índices
$i
y$w
, y se almacena en la variable$suma
. - Casi para terminar se verifica si la suma es igual al objetivo.
- Si la suma es igual al objetivo, se imprime en pantalla los dos elementos que suman el objetivo, separados por una coma y seguidos de un salto de línea (
<br>
). - Al finalizar la ejecución del código, se habrán impreso todos los pares de elementos del conjunto que suman el objetivo.

Cuéntanos ¿Cómo lo resolviste tú?
Antes de irte te dejamos otro reto de programación para que sigas practicando y mejorando tu lógica. Suma infinita de un número
Recuerda compartir este #retodeprogramación en tu red social favorita para que más chicas estén al tanto y mejoren sus habilidades en programación.
¡Hasta Pronto! 😉