Hướng dẫn giải của Thừa số cuối cùng (LASTNUM)
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.
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.
Phân tích bài toán:
- Kiến thức toán: Chữ số tận cùng của một tích chỉ phụ thuộc vào chữ số tận cùng của từng thừa số: ~\text{last} = ((a \% 10) \times (b \% 10)) \% 10~
- Kỹ năng lập trình:
- Nếu lấy ~a \times b~ trực tiếp trước rồi mới
% 10, với ~a, b \le 10^9~ thì ~a \times b \approx 10^{18}~ (vẫn vừalong long, nhưng dễ tràn nếu dùngint). - Tối ưu nhất là lấy chữ số tận cùng của từng số trước rồi nhân lại và chia dư cho 10.
- Nếu lấy ~a \times b~ trực tiếp trước rồi mới
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a, b;
cin >> a >> b;
long long res = ((a % 10) * (b % 10)) % 10;
cout << res;
return 0;
}
Đang tải...