Nguồn đề bài: http://www.spoj.com/PTIT/problems/PTIT016C/
1. Đề bài PTIT016C spoj
An rất thích những gì có tính thứ tự nên muốn tìm các số nguyên dương mà chữ số ở vị trí chẵn thì là số chẵn còn chữ số ở vị trí lẻ thì là số lẻ. Hãy giúp An thực hiện công việc trên.
Input
- Dòng đầu chứa số N là số bộ dữ liệu (1<N<100).
- N dòng tiếp theo, mỗi dòng chứa một số nguyên dương không quá 200 chữ số.
Output
Với mỗi bộ dữ liệu, ghi ra trên một dòng chữ YES nếu số đó thỏa mãn tính chất mà An yêu cầu; dòng chữ NO nếu ngược lại.
Example
Input:
4
1
4
1234567812345678123456781234987654327890
87654321
Output:
YES
NO
YES
NO
2. Code tham khảo PTIT016C spoj – ACM PTIT 2016
#include <stdio.h> #include <iostream> #include <cstring> using namespace std; char s[200]; long n; bool check(char s[]) { long i; for (i = 0; i < (long)strlen(s); i++) if (((i % 2 == 0) && ((s[i] - 48) % 2 == 0)) || ( (i % 2 == 1) && ((s[i] - 48) % 2 == 1) ) ) return (false); return (true); } int main() { cin >> n; long i; for (i = 1; i <= n; i++) { cin >> s; cout << (check(s) ? "YES" : "NO") << endl; } return 0; }