สมมุติว่า เรามีจำนวนเต็ม N เราต้องหาผลรวมของหลักคี่และหลักคู่ ดังนั้นหากตัวเลขเช่น 153654 ดังนั้น odd_sum =9 และeven_sum =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