Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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"으로 감소시킵니다.

  • 숫자가 짝수보다 나누어 떨어지면 홀수입니다.

  • 찾은 자릿수가 짝수이면 짝수 카운트를 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