C++中整数奇偶数位计数


给定一个整数,任务是计算其中偶数位和奇数位的个数。此外,我们还需要检查整数中的偶数位是否出现偶数次,以及奇数位是否出现奇数次。

例如

Input − digit = 12345
Output − count for even digits = 2
      count for odd digits = 3

说明 − 是的,偶数位出现偶数次(即2次),奇数位出现奇数次(即3次)。

Input − digit = 44556
Output − count for even digits = 3
      count for odd digits = 2

说明:否,因为偶数位出现奇数次(即3次),奇数位出现偶数次(即2次)。

下面程序中使用的方法如下:

  • 输入一个包含奇数位和偶数位的整数。

  • 声明两个变量,一个用于计数奇数位,另一个用于计数偶数位,并将它们初始化为0。

  • 开始循环,当数字大于0时,用“digit/10”递减它,这样我们就可以获取整数中的个位数字。

  • 如果数字能被2整除,则为偶数,否则为奇数。

  • 如果找到的数字是偶数,则偶数计数加1;如果找到的数字是奇数,则奇数计数加1。

  • 现在,为了检查偶数位是否出现偶数次,将偶数计数除以2,如果结果为0,则它出现偶数次,否则出现奇数次。

  • 为了检查奇数位是否出现奇数次,将奇数计数除以2,如果结果不为0,则它出现奇数次,否则出现偶数次。

  • 打印结果。

示例

 在线演示

#include <iostream>
using namespace std;
int main(){
   int n = 12345, e_count = 0, o_count = 0;
   int flag;
   while (n > 0){
      int rem = n % 10;
      if (rem % 2 == 0){
         e_count++;
      } else {
         o_count++;
      }
      n = n / 10;
   }
   cout << "Count of Even numbers : "<< e_count;
   cout << "\nCount of Odd numbers : "<< o_count;
   // To check the count of even numbers is even and the
   // count of odd numbers is odd
   if (e_count % 2 == 0 && o_count % 2 != 0){
      flag = 1;
   } else {
      flag = 0;
   }
   if (flag == 1){
      cout << "\nYes " << endl;
   } else {
      cout << "\nNo " << endl;
   }
   return 0;
}

输出

如果运行上述代码,它将生成以下输出:

Count of Even numbers : 2
Count of Odd numbers : 3
Yes

更新于:2020年5月15日

2K+ 次查看

开启你的职业生涯

完成课程获得认证

开始学习
广告