Menu
CoddyTech

Thử thách: Tính tổng các số

Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 93 trên 94.

challenge icon

Thử thách

Dễ

Trong thử thách này, bạn sẽ tạo một hàm để tính tổng các số trong danh sách dựa trên một số điều kiện.

Bạn có một danh sách số nguyên và cần hoàn thành hàm sumWithCondition để chỉ cộng các số đáp ứng những tiêu chí cụ thể.

Hàm này cần:

  • Tính tổng tất cả các số trong danh sách lớn hơn giá trị threshold
  • Dừng cộng số ngay sau khi tổng vượt quá giá trị maxSum (tổng cuối cùng có thể lớn hơn maxSum)
  • Trả về tổng cuối cùng

Quan trọng: Hàm dừng cộng số sau khi cộng một số khiến tổng vượt quá maxSum. Điều này có nghĩa là kết quả cuối cùng có thể lớn hơn maxSum.

Ví dụ: Nếu các số lớn hơn ngưỡng là [15, 20, 25, 30] và maxSum là 50:

  • Cộng 15: tổng = 15 (tiếp tục)
  • Cộng 20: tổng = 35 (tiếp tục)
  • Cộng 25: tổng = 60 (vượt quá 50, nên dừng tại đây)
  • Kết quả: 60 (không phải 50)

Tự làm thử

void main() {
  // Các test case
  List<int> numbers = [5, 10, 15, 20, 25, 30];
  
  // Tính tổng các số lớn hơn 12, tối đa 50
  int result = sumWithCondition(numbers, 12, 50);
  print('Sum of numbers > 12 (max 50): $result');
  
  // Tính tổng các số lớn hơn 8, tối đa 100
  result = sumWithCondition(numbers, 8, 100);
  print('Sum of numbers > 8 (max 100): $result');
}

// TODO: Hoàn thiện hàm này để tính tổng các số theo điều kiện
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
  int sum = 0;
  
  // TODO: Duyệt qua danh sách numbers
  // TODO: Chỉ cộng các số lớn hơn threshold vào tổng
  // TODO: Ngừng cộng nếu tổng vượt quá maxSum
  
  return sum;
}

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Trình biên dịch Dart online