[Buổi 19][Con trỏ][HW] Bài 3: Tổng mảng động
Tổng mảng động
Bối cảnh
Một batch dữ liệu có kích thước n chỉ được biết khi chương trình chạy. Thay vì mảng tĩnh với kích thước cố định, chương trình phải cấp phát đúng n phần tử bằng new[], đọc dữ liệu, tính tổng, rồi giải phóng bằng delete[]. Với n=0, chương trình không được giả định tồn tại phần tử đầu tiên.
Homework Easy kiểm tra toàn bộ lifecycle tối thiểu của raw dynamic array: allocate → use → cleanup. Thuật toán tổng mảng rất quen thuộc để người học dành sự chú ý cho việc quản lý vùng nhớ, chọn kiểu long long cho tổng và không dùng lại pointer sau khi giải phóng.
Yêu cầu
- Cấp phát mảng động.
- Đọc n phần tử.
- Tính và in tổng.
- delete[] trước khi kết thúc.
Input
Dòng 1 n; dòng 2 n số nếu n>0.
Output
Một số nguyên.
Ràng buộc
0 ≤ n ≤ 10000, |a[i]|≤10^9.
Ví dụ 1
Input
3
1 2 3
Output
6
Giải thích
n=3 nên chương trình cấp phát ba phần tử và đọc 1 2 3. Tổng tích lũy lần lượt 1, 3, 6. Sau khi tính xong, mảng được delete[]; kết quả 6 đã nằm trong biến sum nên output là 6.
Ví dụ 2
Input
0
Output
0
Giải thích
n=0 nghĩa là không có phần tử để đọc hoặc cộng. Tổng khởi tạo bằng 0 và giữ nguyên. Chương trình không dereference vùng nhớ rỗng, vì vậy output hợp lệ là 0.
Thông tin học tập
- Module: M06
- Buổi: B19
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: dynamic arrays, new[], delete[], traversal
- Giới hạn kiến thức: B01-B19
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments