Menu
Coddy logo textTech

Défi : Somme des nombres

Fait partie de la section Fondamentaux du Journey Dart de Coddy. Leçon 93 sur 94.

challenge icon

Défi

Facile

Dans ce défi, vous allez créer une fonction qui calcule la somme de nombres dans une liste en fonction de certaines conditions.

Vous disposez d’une liste d’entiers et devez compléter la fonction sumWithCondition, qui additionne uniquement les nombres répondant à des critères précis.

La fonction doit :

  • Calculer la somme de tous les nombres de la liste qui sont supérieurs à la valeur threshold
  • Arrêter immédiatement d’ajouter des nombres dès que la somme dépasse la valeur maxSum (la somme finale peut être supérieure à maxSum)
  • Retourner la somme finale

Important : La fonction arrête d’ajouter des nombres après avoir ajouté un nombre qui fait dépasser la somme de maxSum. Cela signifie que le résultat final peut être supérieur à maxSum.

Exemple : Si les nombres supérieurs à threshold sont [15, 20, 25, 30] et que maxSum vaut 50 :

  • Ajouter 15 : somme = 15 (continuer)
  • Ajouter 20 : somme = 35 (continuer)
  • Ajouter 25 : somme = 60 (dépasse 50, arrêter ici)
  • Résultat : 60 (et non 50)

Essayez vous-même

void main() {
  // Cas de test
  List<int> numbers = [5, 10, 15, 20, 25, 30];
  
  // Somme des nombres supérieurs à 12, avec somme max de 50
  int result = sumWithCondition(numbers, 12, 50);
  print('Sum of numbers > 12 (max 50): $result');
  
  // Somme des nombres supérieurs à 8, avec somme max de 100
  result = sumWithCondition(numbers, 8, 100);
  print('Sum of numbers > 8 (max 100): $result');
}

// TODO: Compléter cette fonction pour sommer les nombres selon les conditions
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
  int sum = 0;
  
  // TODO: Parcourir la liste des nombres
  // TODO: Ajouter seulement les nombres supérieurs au seuil à la somme
  // TODO: Arrêter d'ajouter si la somme dépasse maxSum
  
  return sum;
}

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Dart en ligne