>  기사  >  백엔드 개발  >  C에서 연속된 1이 없는 이진 문자열의 개수 계산

C에서 연속된 1이 없는 이진 문자열의 개수 계산

WBOY
WBOY앞으로
2023-09-04 22:09:081000검색

C에서 연속된 1이 없는 이진 문자열의 개수 계산

주어진 작업은 연속된 문자열 없이 길이가 n인 모든 이진 문자열의 개수를 세는 것입니다.

이진법은 숫자 표현 기술의 일종입니다. 디지털 시스템에서 가장 널리 사용되고 사용됩니다. 이진 시스템은 두 가지 작동 상태 또는 가능한 조건만 있는 모든 장치로 표시할 수 있는 이진 수량을 나타내는 데 사용됩니다. 예를 들어 스위치에는 켜짐 또는 꺼짐이라는 두 가지 상태만 있습니다.

이진법에는 0과 1이라는 두 가지 기호 또는 숫자 값만 있습니다. 2개만으로 모든 장치의 작동 상태 또는 가능한 조건을 나타냅니다. 이진 문자열은 이진 값, 즉 0 또는 1을 포함하는 문자열입니다.

이제 우리가 해야 할 일을 이해하기 위해 예를 사용하겠습니다. -

Input - n = 2

Output - 연속되는 1이 없습니다. 2 이진 문자열의 개수는 다음과 같습니다: 3

Explanation - 00, 01, 10 따라서 길이가 n인 이진 문자열은 3개만 있고 연속적인 1

input − n = 7

output

입력 Strong> - 7에서 연속된 1이 없는 이진 문자열의 개수는 - 34

다음 프로그램에서 사용된 방법은 다음과 같습니다

  • n을 입력하여 문자열 길이를 나타냅니다

  • 개수에 함수를 사용하면 연속된 1이 없는 이진 문자열을 계산하고 크기 n의 두 배열 arr[] 및 arr_2와 저장을 위한 변수 temp를 정의합니다.

  • 두 배열의 0번째 요소를 1

  • 루핑 시작 i=1부터 I가 n보다 작을 때까지.

  • 루프에서 arr[i] = arr[i-1]+arr_2[i-1] 및 arr_2[i] = arr[i-1]을 설정하세요.

  • temp = arr[n-1]+arr_2[n-1]로 설정한 다음 temp를 인쇄합니다.

Example

라이브 데모

#include<stdio.h>
//create function to calculate binary strings without consecutive 1&rsquo;s
void count(int num){
   int arr[num];
   int arr_2[num];
   int i=0, temp=0;
   arr[0] = arr_2[0] = 1;
   //loop till number isn&#39;t equals to 0
   for (i = 1; i < num; i++){
      arr[i] = arr[i-1] + arr_2[i-1];
      arr_2[i] = arr[i-1];
   }
   temp = arr[num-1] + arr_2[num-1];
   printf("Count of binary strings without consecutive 1&rsquo;s of %d is : %d",num,temp);
   printf("</p><p>");
}
int main(){
   //call the count function
   count(10);
   count(7);
   count(1);
   return 0;
}

Output

위 코드를 실행하면 다음과 같은 출력을 얻게 됩니다. -

Count of binary strings without consecutive 1&rsquo;s of 10 is : 144
Count of binary strings without consecutive 1&rsquo;s of 7 is : 34
Count of binary strings without consecutive 1&rsquo;s of 1 is : 2

위 내용은 C에서 연속된 1이 없는 이진 문자열의 개수 계산의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제