在 C++ 中查找数字在偶数位和奇数位上的数字之和


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

更新于:2019-12-19

978 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告