Cho chuỗi chữ số, đếm số chuỗi con đại diện cho số chẵn.
Ví dụ: "1234" → 6 chuỗi con chẵn: 2, 12, 4, 34, 234, 1234.
Giải thuật
- count = 0
- Duyệt i=0..len-1: currentDigit = str[i]-'0'
- Nếu currentDigit % 2 == 0: count += i + 1
- Trả về count
Giải thích: Mỗi chữ số chẵn tại vị trí i tạo ra i+1 chuỗi con kết thúc tại i (từ 0 đến i).
Ví dụ minh họa
#include<bits/stdc++.h>
using namespace std;
int getEvenSubstringsCount(char str[]) {
int len = strlen(str), count = 0;
for (int i = 0; i < len; i++) {
int currentDigit = str[i] - '0';
if (currentDigit % 2 == 0) count += i + 1;
}
return count;
}
int main() {
char str[] = "12345678";
cout << getEvenSubstringsCount(str) << endl;
return 0;
}
Đầu ra
20