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

C++에서 0과 1만 포함하는 1부터 n까지의 정수 개수 찾기

<시간/>

숫자 n이 있다고 가정합니다. 우리의 임무는 0과 1의 숫자만을 포함하는 1에서 n까지의 정수의 수를 찾는 것입니다. 따라서 n =15이면 출력은 다음과 같습니다. 숫자가 1, 10, 11이므로

이를 해결하기 위해 재귀 함수를 사용하여 0과 1을 사용하는 정수를 생성합니다. 다음 코드는 이를 더 잘 이해하는 데 도움이 됩니다.

예시

#include<iostream>
using namespace std;
int numberOfValues(int p, int n) {
   if (p > n)
      return 0;
   return 1 + numberOfValues(p * 10, n) + numberOfValues(p * 10 + 1, n);
}
int main() {
   int n = 120;
   cout << "Number of values using 0s and 1s: " << numberOfValues(1, n);
}

출력

Number of values using 0s and 1s: 7