Giả sử có số nguyên N, tìm tổng các chữ số ở vị trí lẻ và vị trí chẵn. Ví dụ 153654: odd_sum = 9, even_sum = 15.
Giải pháp: trích xuất các chữ số từ chữ số cuối. Nếu số chữ số ban đầu là lẻ, chữ số cuối ở vị trí lẻ, ngược lại thì chẵn. Sau mỗi chữ số, đảo trạng thái chẵn/lẻ.
Ví dụ
#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); }
Kết quả
Sum odd : 9 Sum even : 15