Hướng dẫn giải của [200 đề thầy Đức] Bài 29: Làm tròn số
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.
Hướng dẫn giải
Cho số nguyên không âm N, làm tròn N đến bội của 10 gần nhất. In ra kết quả, nếu có nhiều đáp án đúng thì in một trong số đó.
Cách làm
- Lấy chữ số hàng đơn vị của N bằng phép chia lấy dư cho 10.
- Nếu chữ số đó nhỏ hơn hoặc bằng 5 thì làm tròn xuống: bỏ chữ số đó đi, tức là N - du.
- Nếu chữ số đó lớn hơn 5 thì làm tròn lên: cộng thêm (10 - du) để được bội của 10 tiếp theo.
- Trường hợp du = 5 có hai đáp án đúng (xuống hoặc lên), chương trình chọn làm tròn xuống.
Ví dụ: N = 4722, du = 2 nên kết quả là 4720. N = 113, du = 3 nên kết quả là 110.
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
// Chữ số hàng đơn vị của n
long long du = n % 10;
long long ketqua;
if (du <= 5) {
// Làm tròn xuống (khi du = 5 thì làm tròn xuống hoặc lên đều đúng)
ketqua = n - du;
} else {
// Làm tròn lên bội của 10 gần nhất
ketqua = n + (10 - du);
}
cout << ketqua << "\n";
return 0;
}
Bình luận