Hướng dẫn giải của F07: Số chẵn lẻ
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
Kiểm tra N có thỏa mãn: chữ số ở vị trí chẵn là chữ số chẵn, chữ số ở vị trí lẻ là chữ số lẻ (vị trí đếm từ trái, bắt đầu từ 1).
Sub 1: Duyệt một lần các chữ số — ~O(log N)~
Đọc N dưới dạng xâu để lấy chữ số theo vị trí từ trái. Nếu vị trí lẻ có chữ số chẵn, hoặc vị trí chẵn có chữ số lẻ thì kết quả là False. Bài này chỉ cần một lần duyệt nên viết 1 sub (lý do).
Kết quả chấm: đạt 20/20 test.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin >> s; // doc N duoi dang chuoi de lay chu so theo vi tri
bool ok = true;
for (int i = 0; i < (int)s.size(); i++) {
int pos = i + 1; // vi tri tinh tu trai, bat dau tu 1
int d = s[i] - '0';
if (pos % 2 == 1 && d % 2 == 0) ok = false; // vi tri le phai la chu so le
if (pos % 2 == 0 && d % 2 == 1) ok = false; // vi tri chan phai la chu so chan
}
cout << (ok ? "True" : "False") << endl;
return 0;
}
Bình luận