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

C++에서 0의 홀수로 구성된 N자리 숫자 세기

<시간/>

입력으로 숫자 N이 제공됩니다. 목표는 0이 홀수인 N자리 숫자를 모두 찾는 것입니다. N=3인 경우 포함된 숫자는 000,011,012….990과 같이 숫자 앞에 0이 있을 수도 있습니다.

예를 들어 이해합시다.

입력 - N=3

출력 - 번호의 개수. 짝수 0으로 구성된 N 자리는 -244입니다.

설명 − 3자리 숫자는 모두 다음과 같습니다. −

Smallest will be 000, then 011,012,013,0014…..Highest will be 990.

입력 - N=5

출력 - 번호의 개수. 짝수 0으로 구성된 N 자리는 - 33616입니다.

설명 − 5자리 숫자는 모두 다음과 같습니다. −

Smallest will be 00000, then 00011,00012,00013,0014…..Highest will be 99990.

아래 프로그램에서 사용한 접근 방식은 다음과 같습니다.

먼저 T=10N-1인 총 N 자리 숫자를 계산합니다. 그런 다음 0이 짝수인 모든 N 자리 숫자를 계산합니다. 즉, E=10N-8N 입니다. Odd0의 숫자가 있는 나머지 숫자는 (T-E)/2입니다.

  • 정수 N을 입력으로 받습니다.

  • count_dd(int N) 함수는 N을 취하여 홀수 0이 있는 N 자리 숫자의 개수를 반환합니다.

  • 총 N자리 숫자는 total=pow(10,N)-1

    입니다.
  • 숫자에 0이 짝수인 총 N자리 숫자는 even=pow(10,N)-pow(8,N)입니다.

  • 나머지 홀수 0은 홀수=(총-짝수)/2입니다.

  • 홀수가 0인 N자리 숫자의 개수로 홀수를 반환합니다.

#include <bits/stdc++.h>
using namespace std;
int count_odd(int N){
   int total = pow(10, N);
   int even = pow(8, N);
   int odd = (total - even) / 2;
   return odd;
}
int main(){
   int N = 4;
   cout<<"Count of Numbers with N digits which consists of odd number of 0's are: "<<count_odd(N);
return 0;
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -

Count of Numbers with N digits which consists of odd number of 0's are: 2952