Hướng dẫn giải của Tính tổng của 3 số nguyên
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lời giải này đang bị ẩn cho đến khi bạn chọn mở ra.
Chúng tôi khuyên bạn nên tự thử giải bài trước. Việc mở lời giải có thể làm lộ mất ý tưởng chính trước khi bạn có cơ hội tự giải.
Bạn phải đăng nhập để mở lời giải này.
Đăng nhậpTác giả: , , ,
Hiểu bài toán
Bài toán yêu cầu viết một chương trình nhập vào 3 số nguyên a, b, c và tính tổng của chúng. Dữ liệu đầu vào là 3 số nguyên cách nhau bởi khoảng trắng, nằm trong khoảng từ -1000 đến 1000. Chương trình cần in ra kết quả tổng của 3 số này.
Các cách tiếp cận
Cách Basic Sum Calculation
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
int sum = a + b + c;
printf("%d", sum);
return 0;
}
- Time Complexity: O(1)
- Space Complexity: O(1)
Đây là cách tiếp cận đơn giản và phổ biến nhất. Chương trình khai báo 3 biến số nguyên, sử dụng hàm scanf để đọc giá trị từ input, tính tổng bằng phép cộng trực tiếp và in kết quả bằng printf. Đây là phương pháp hiệu quả nhất cho bài toán này.
Cách With Input Validation
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a >= -1000 && a <= 1000 && b >= -1000 && b <= 1000 && c >= -1000 && c <= 1000) {
int tong = a + b + c;
printf("%d", tong);
}
return 0;
}
- Time Complexity: O(1)
- Space Complexity: O(1)
Phương pháp này thêm bước kiểm tra điều kiện để đảm bảo các số nhập vào nằm trong giới hạn cho phép (-1000 đến 1000). Mặc dù kiểm tra này không cần thiết cho bài toán do đề bài đã cam kết dữ liệu đầu vào hợp lệ, nhưng nó cho thấy cách thêm các điều kiện kiểm tra input.
Cách Direct Output Without Variable
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
printf("%d", a + b + c);
return 0;
}
- Time Complexity: O(1)
- Space Complexity: O(1)
Cách tiếp cận này tối giản hóa code bằng cách tính tổng trực tiếp trong hàm printf mà không cần khai báo biến cộng thêm. Đây là cách hiệu quả nhất về mặt code length nhưng về hiệu năng thì tương đương với cách cơ bản.
Phân tích độ phức tạp
| Cách tiếp cận | Time | Space | Tên |
|---|---|---|---|
| 1 | O(1) | O(1) | Basic Sum Calculation |
| 2 | O(1) | O(1) | With Input Validation |
| 3 | O(1) | O(1) | Direct Output Without Variable |
Bài học kinh nghiệm
- Bài toán này thuộc loại đơn giản nhất trong competitive programming, chỉ cần thao tác cơ bản với input/output
- Có thể giải quyết chỉ với 3 dòng code thiết yếu: scanf, tính toán, printf
Lỗi thường gặp
- Quên đặt dấu & trước tên biến trong scanf
- Sai format specifier trong printf/scanf (dùng %f thay vì %d cho số nguyên)
- Quên return 0 ở cuối hàm main trong C
Bình luận