Hướng dẫn giải của 35. Chữ số lớn nhất và nhỏ nhất (RMMDIGIT - )
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.
1. Ý tưởng giải quyết
- Vì tập chữ số chỉ thuộc đoạn ~[0, 9]~:
- Để tìm chữ số lớn nhất: Khởi tạo biến
lon = 0(giá trị nhỏ nhất có thể của một chữ số). - Để tìm chữ số nhỏ nhất: Khởi tạo biến
nho = 9(giá trị lớn nhất có thể của một chữ số).
- Để tìm chữ số lớn nhất: Khởi tạo biến
- Duyệt qua từng chữ số
cs = n % 10:- Cập nhật số lớn nhất:
lon = max(lon, cs);(hoặc dùng câu lệnhif (cs > lon) lon = cs;). - Cập nhật số nhỏ nhất:
nho = min(nho, cs);(hoặc dùng câu lệnhif (cs < nho) nho = cs;).
- Cập nhật số lớn nhất:
- In ra hai giá trị
lonvànhocách nhau bởi một dấu cách.
2. Mã nguồn mẫu C++
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
int lon = 0;
int nho = 9;
while (n > 0) {
int cs = n % 10;
if (cs > lon) lon = cs;
if (cs < nho) nho = cs;
n /= 10;
}
cout << lon << " " << nho;
return 0;
}
Đang tải...