Hướng dẫn giải của Phép toán lớp 3


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
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ập

Tác giả: Hiếu Nguyễn, Khang2007, PhuTrong37, peterjerry

Hiểu bài toán

Bài toán yêu cầu nhập vào 3 số nguyên a, b, c và tính toán biểu thức (a - b) * c. Sau đó in kết quả ra màn hình. Dữ liệu đầu vào có thể là số âm. Với giới hạn |a|, |b|, |c| <= 100, kết quả sẽ nằm trong khoảng [-20000, 20000] (vì (100 - (-100)) * 100 = 200 * 100 = 20000).

Các cách tiếp cận

Cách Sử dụng kiểu dữ liệu int
#include <stdio.h>
int main() {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    int res = (a - b) * c;
    printf("%d", res);
    return 0;
}
  • Time Complexity: O(1)
  • Space Complexity: O(1)

Sử dụng kiểu int là cách giải quyết đơn giản nhất. Với giới hạn đề bài, kiểu int (thường là 32-bit) đủ để lưu trữ kết quả cuối cùng mà không bị tràn số. Biến a, b, c được khai báo, nhập vào bằng scanf, tính toán và in ra.

Cách Sử dụng kiểu dữ liệu long long
#include <stdio.h>
int main() {
    long long a, b, c;
    scanf("%lld %lld %lld", &a, &b, &c);
    long long res = (a - b) * c;
    printf("%lld", res);
    return 0;
}
  • Time Complexity: O(1)
  • Space Complexity: O(1)

Sử dụng kiểu long long (64-bit integer). Đây là một cách tiếp cận an toàn hơn, đảm bảo không bị tràn số kể cả khi giới hạn của đề bài được nới lỏng lên đáng kể. Cách này thường được khuyến khích trong lập trình thi đấu để tránh lỗi tràn số không đáng có.

Phân tích độ phức tạp

Cách tiếp cận Time Space Tên
1 O(1) O(1) Sử dụng kiểu dữ liệu int
2 O(1) O(1) Sử dụng kiểu dữ liệu long long

Bài học kinh nghiệm

  • Bài toán chỉ là phép tính số học cơ bản.
  • Vấn đề duy nhất cần quan tâm là chọn kiểu dữ liệu phù hợp để tránh tràn số.

Lỗi thường gặp

  • Lỗi cú pháp khi nhập/ xuất (ví dụ: sai format specifier trong scanf/printf).
  • Quên các dấu ngoặc khi tính toán (ví dụ: a - b * c sẽ tính sai theo quy tắc nhân trước chia sau).

Bình luận

Please read the guidelines before commenting.


Không có bình luận tại thời điểm này.