Suma de subconjuntos - Reto de programaci贸n - GirlPowerInCode

隆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.

驴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 es 10.
  • 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 a count($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! 馃槈

隆Haz clic para valorar este contenido!
(Votos: 2 Promedio: 5)

隆Comparte este contenido! 馃槈