Cho một số nguyên, đếm số chữ số chẵn và chữ số lẻ. Kiểm tra thêm: số chữ số chẵn có xuất hiện chẵn lần không, số chữ số lẻ có xuất hiện lẻ lần không.
Ví dụ
Input - 12345 Output - Even: 2, Odd: 3, Yes
Giải thích - Chẵn: 2,4 (2 lần - chẵn), Lẻ: 1,3,5 (3 lần - lẻ) → Yes.
Input - 44556 Output - Even: 3, Odd: 2, No
Giải thích - Chẵn: 4,4,6 (3 lần - lẻ), Lẻ: 5,5 (2 lần - chẵn) → No.
Phương pháp tiếp cận
- Khởi tạo e_count=0, o_count=0
- While n > 0: lấy chữ số cuối (n%10), kiểm tra chẵn/lẻ, tăng biến đếm, n/=10
- Kiểm tra: e_count % 2 == 0 VÀ o_count % 2 != 0 → Yes, ngược lại No
Ví dụ code C++
#include <iostream>
using namespace std;
int main() {
int n = 12345, e_count = 0, o_count = 0;
while (n > 0) {
int rem = n % 10;
if (rem % 2 == 0) e_count++;
else o_count++;
n /= 10;
}
cout << "Count of Even numbers: " << e_count;
cout << "\nCount of Odd numbers: " << o_count;
int flag = (e_count % 2 == 0 && o_count % 2 != 0) ? 1 : 0;
cout << (flag ? "\nYes" : "\nNo") << endl;
return 0;
}
Kết quả
Count of Even numbers: 2 Count of Odd numbers: 3 Yes