Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C#] C# IEnumerable - Lazy MyTake với side effect verify

    Cài static IEnumerable MyTake(IEnumerable src, int k) — yield return tối đa k phần tử đầu từ src, dừng ngay sau khi đủ k (lazy). Cài static IEnumerable NoisySource() — yield return 1,2,3,... vô hạn, mỗi lần yield in 'p i' (i là số sắp yield) ra Console. Đọc k, gọi foreach over MyTake(NoisySource(), k) chỉ để cộng dồn vào sum, sau đó in 'sum S'. Output phải có k dòng 'p i' rồi 'sum S' — chứng minh source KHÔNG sinh phần tử thứ k+1. Nếu k=0 chỉ in 'sum 0'.

    • Định dạng đầu vào:

      Dòng 1: k.

    • Ràng buộc đầu vào:

      0 <= k <= 20

    • Định dạng đầu ra:

      k dòng 'p 1'..'p k' rồi 'sum S' (S=k*(k+1)/2).

    Ví dụ:

    Đầu vào:

    3
    

    Đầu ra:

    p 1
    p 2
    p 3
    p 4
    sum 6

    Giải thích:

    Lazy: chỉ in p 1..p 3, không in p 4.

    Đang tải editor...