Menu
Coddy logo textTech

Desafio: Soma de números

Parte da seção Fundamentos do Journey de Dart da Coddy — lição 93 de 94.

challenge icon

Desafio

Fácil

Neste desafio, você criará uma função que calcula a soma de números em uma lista com base em certas condições.

Você tem uma lista de inteiros e precisa completar a função sumWithCondition que soma apenas os números que atendem a critérios específicos.

A função deve:

  • Calcular a soma de todos os números na lista que são maiores que o valor threshold
  • Parar de adicionar números imediatamente após a soma exceder o valor maxSum (a soma final pode ser maior que maxSum)
  • Retornar a soma final

Importante: A função para de adicionar números após adicionar um número que faz a soma exceder maxSum. Isso significa que o resultado final pode ser maior que maxSum.

Exemplo: Se os números maiores que threshold forem [15, 20, 25, 30] e maxSum for 50:

  • Adicionar 15: soma = 15 (continuar)
  • Adicionar 20: soma = 35 (continuar)
  • Adicionar 25: soma = 60 (excede 50, então parar aqui)
  • Resultado: 60 (não 50)

Experimente você mesmo

void main() {
  // Casos de teste
  List<int> numbers = [5, 10, 15, 20, 25, 30];
  
  // Somar números maiores que 12, com soma máxima de 50
  int result = sumWithCondition(numbers, 12, 50);
  print('Sum of numbers > 12 (max 50): $result');
  
  // Somar números maiores que 8, com soma máxima de 100
  result = sumWithCondition(numbers, 8, 100);
  print('Sum of numbers > 8 (max 100): $result');
}

// TODO: Complete esta função para somar números com base nas condições
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
  int sum = 0;
  
  // TODO: Percorrer a lista de números
  // TODO: Adicionar apenas números maiores que threshold à soma
  // TODO: Parar de adicionar se a soma exceder maxSum
  
  return sum;
}

Todas as lições de Fundamentos