假设我们有一个整数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