Desafío: Suma de números
Parte de la sección Fundamentos del Journey de Dart de Coddy. Lección 93 de 94.
Desafío
FácilEn este desafío, crearás una función que calcula la suma de números en una lista según ciertas condiciones.
Tienes una lista de enteros y debes completar la función sumWithCondition, que suma únicamente los números que cumplen criterios específicos.
La función debe:
- Calcular la suma de todos los números de la lista que sean mayores que el valor de
threshold - Dejar de sumar números inmediatamente después de que la suma supere el valor de
maxSum(la suma final puede ser mayor quemaxSum) - Devolver la suma final
Importante: La función deja de sumar números después de añadir un número que hace que la suma supere maxSum. Esto significa que el resultado final puede ser mayor que maxSum.
Ejemplo: Si los números mayores que threshold son [15, 20, 25, 30] y maxSum es 50:
- Añadir 15: suma = 15 (continuar)
- Añadir 20: suma = 35 (continuar)
- Añadir 25: suma = 60 (supera 50, así que detenerse aquí)
- Resultado: 60 (no 50)
Pruébalo tú mismo
void main() {
// Casos de prueba
List<int> numbers = [5, 10, 15, 20, 25, 30];
// Sumar números mayores a 12, con suma máxima de 50
int result = sumWithCondition(numbers, 12, 50);
print('Sum of numbers > 12 (max 50): $result');
// Sumar números mayores a 8, con suma máxima de 100
result = sumWithCondition(numbers, 8, 100);
print('Sum of numbers > 8 (max 100): $result');
}
// TODO: Completa esta función para sumar números basados en condiciones
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
int sum = 0;
// TODO: Recorre la lista de números
// TODO: Agrega solo números mayores al umbral a la suma
// TODO: Detén la adición si la suma excede maxSum
return sum;
}Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores de ComparaciónAND LógicoOR LógicoNOT LógicoOperadores de Prueba de TipoResumen - Realizando Comparaciones7Trabajando con Cadenas
Concatenación de CadenasInterpolación de CadenasCadenas MultilíneaPropiedades de CadenasMétodos Básicos de Cadenas10Colecciones - Conceptos básicos de Mapas
¿Qué son los Mapas?Creando un MapaAccediendo a Valores por ClavePares Clave-ValorObteniendo el Tamaño del MapaObteniendo las ClavesObteniendo los ValoresVerificando si una Clave Existe13Null Safety en Profundidad
Comprendiendo NullTipos NullableTipos No NullableOperador de Afirmación NullInicialización TardíaResumen - Manejo Seguro de Null16Desafíos Fundamentales
Desafío: Lista de cálculosDesafío: Suma de númerosDesafío: Encontrar producto2Variables y Tipos de Datos Básicos
¿Qué son las Variables?CadenasEnteros (int)Dobles (double)Booleanos (bool)Inferencia de Tipos con 'var'Variables FinalesVariables ConstantesConvenciones de NombresSeguridad Básica ante NullResumen - Declarando Variables8Flujo de control - Bucles
El bucle 'for'El bucle 'while'El bucle 'do-while'Usando 'break' en buclesUsando 'continue' en buclesResumen - Código repetitivo3Operadores Parte 1
Operadores AritméticosDivisión EnteraOperador MóduloIncremento y DecrementoAtajos de AsignaciónResumen - Cálculos Simples6Flujo de Control - Toma de Decisiones
La sentencia 'if'La sentencia 'else'La sentencia 'else if'Resumen - Decisiones SimplesSentencias 'if' AnidadasLa sentencia 'switch'9Colecciones - Listas Básicas
¿Qué son las listas?Creando una listaAccediendo por índiceObteniendo la longitud de la listaAgregando elementosEliminando elementosComprobando si una lista está vacíaIterando sobre una lista12Funciones Avanzadas
Parámetros Posicionales OpcionalesParámetros NombradosParámetros Nombrados RequeridosValores de Parámetro por DefectoResumen - Parámetros de Función15Proyecto: Calculadora Simple
ConfigurandoDeclarando NúmeroPractica por tu cuenta: Compilador de Dart online