สมมติว่าเรามีจำนวนเต็ม N เราต้องหาผลรวมของหลักเลขในตำแหน่งคี่และตำแหน่งคู่ ดังนั้นถ้าตัวเลขเป็น 153654 ผลรวมตำแหน่งคี่ = 9 และผลรวมตำแหน่งคู่ = 15
เพื่อแก้ปัญหานี้ เราสามารถแยกหลักเลขทั้งหมดจากหลักสุดท้าย หากตัวเลขต้นฉบับมีจำนวนหลักเป็นคี่ หลักสุดท้ายต้องอยู่ในตำแหน่งคี่ มิฉะนั้นจะเป็นตำแหน่งคู่ หลังจากประมวลผลหลักเลขหนึ่งหลัก เราสามารถสลับสถานะจากคี่เป็นคู่และในทางกลับกัน
ตัวอย่าง
#include <iostream>
using namespace std;
bool isOdd(int x) {
if (x % 2 == 0)
return false;
return true;
}
void getSum(int n) {
bool odd_check = isOdd(n);
int odd_sum = 0, even_sum = 0;
while (n != 0) {
if (odd_check)
odd_sum += n % 10;
else
even_sum += n % 10;
odd_check = !odd_check;
n /= 10;
}
cout << "Sum odd : " << odd_sum << endl;
cout << "Sum even : " << even_sum;
}
int main() {
int n = 153654;
getSum(n);
}
ผลลัพธ์
Sum odd : 9 Sum even : 15