ホームページ  >  記事  >  バックエンド開発  >  C で連続 1 のないバイナリ文字列の数を数える

C で連続 1 のないバイナリ文字列の数を数える

WBOY
WBOY転載
2023-09-04 22:09:08998ブラウズ

C で連続 1 のないバイナリ文字列の数を数える

与えられたタスクは、連続する 1 を持たない長さ n のすべてのバイナリ文字列の数をカウントすることです。

2 進数システムは、数値表現技術の一種です。最も一般的であり、デジタル システムで使用されます。 2 進法は、動作状態または考えられる条件が 2 つしかないデバイスで表現できる 2 進数を表すために使用されます。たとえば、スイッチにはオンまたはオフの 2 つの状態しかありません。

2 進法では、記号または取り得る数値は 0 と 1 の 2 つだけです。 2 だけのデバイスによる動作状態または考えられる状態を表します。バイナリ文字列は、バイナリ値、つまり 0 または 1 を含む文字列です。

次に、何をしなければならないかを理解するために例を使用しましょう -

Enter - n = 2

出力 - 2 に連続 1 がないバイナリ文字列の数は次のとおりです: 3

説明 - 00、01、10 のみ連続しない長さ n の 3 つのバイナリ文字列 1

input − n = 7

output

Input Strong > - 7 の中に連続 1 がないバイナリ文字列の数は - 34です。

次のプログラムで使用されるメソッドは次のとおりです。

  • 入力を受け取ります。n は文字列を表します。 length

  • count 関数では、連続する 1 のないバイナリ文字列をカウントし、サイズ n の 2 つの配列 arr[] と arr_2 を定義し、格納された変数 temp # への配列を定義します。

  • 2 つの配列の 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 を出力します。
ライブ デモンストレーション
#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;
}

出力

上記のコードを実行すると、次の出力が得られます-

rreeee

以上がC で連続 1 のないバイナリ文字列の数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。