สมมติว่าเรามีสตริง S ที่มี n หลัก สตริงย่อยของ S ถูกว่าคู่ถ้าตัวเลขที่แทนโดยสตริงนี้เป็นเลขคู่ ต้องหาจำนวนสตริงย่อยคู่ของ S
เช่น ถ้าอินพุตคือ S = "1234" เอาต์พุตจะเป็น 6 เพราะสตริงย่อยคือ 2, 4, 12, 34, 234, 1234
ขั้นตอนการแก้ปัญหา
a := 0
n := ขนาดของ S
for i := 0 ถึง n-1:
if S[i] mod 2 == 0:
a := a + i + 1
return a
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int solve(string S) {
int a = 0;
int n = S.size();
for (int i = 0; i < n; i++) {
if (S[i] % 2 == 0) {
a += i + 1;
}
}
return a;
}
int main() {
string S = "1234";
cout << solve(S) << endl;
}
อินพุต
1234
เอาต์พุต
6