Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cで連続する1がないバイナリ文字列の数をカウントします


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

2進数システムは、数値表現手法の一種です。これは最も人気があり、デジタルシステムで使用されています。バイナリシステムは、2つの動作状態または可能な条件しかない任意のデバイスで表すことができるバイナリ量を表すために使用されます。たとえば、スイッチには、開いている状態と閉じている状態の2つしかありません。

バイナリシステムでは、2つのシンボルまたは可能な数字値、つまり0と1のみがあります。2つの動作状態または可能な条件しかないデバイスによって表されます。バイナリ文字列は、バイナリ値、つまり0または1のいずれかを含む文字列です

例を使用して、私たちがしなければならないことを理解しましょう-

入力 − n =2

出力 − 2の1が連続していないバイナリ文字列の数は:3

説明 − 00、01、10なので、長さがnで連続する1がないバイナリ文字列は3つだけです

入力 − n =7

出力 −連続する1が7でないバイナリ文字列の数は− 34

以下のプログラムで使用されるアプローチは次のとおりです

  • 文字列の長さを入力nとします

  • count関数では、連続する1のないバイナリ文字列をカウントし、サイズnの2つの配列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]を設定し、温度を出力します。

#include<stdio.h>
//create function to calculate binary strings without consecutive 1’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'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’s of %d is : %d",num,temp);
   printf("\n");
}
int main(){
   //call the count function
   count(10);
   count(7);
   count(1);
   return 0;
}

出力

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

Count of binary strings without consecutive 1’s of 10 is : 144
Count of binary strings without consecutive 1’s of 7 is : 34
Count of binary strings without consecutive 1’s of 1 is : 2

  1. 連続する1’のないバイナリ文字列の数をカウントするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −正の整数Nが与えられているので、文字列に連続する1が存在しないように、長さNで使用可能なすべての可能な個別のバイナリ文字列をカウントする必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # count the number of strings def countStrings(n):    a=[0 for i in range(n)]    b=[0 for i in range(n)]    a[0] = b[0]

  2. 数値の合計ビットをカウントするPythonプログラムを作成しますか?

    最初に数値を入力し、bin()関数を使用してこの数値をバイナリに変換し、次に出力文字列の最初の2文字「0b」を削除し、次にバイナリ文字列の長さを計算します。 例 Input:200 Output:8 説明 Binary representation of 200 is 10010000 アルゴリズム Step 1: input number. Step 2: convert number into its binary using bin() function. Step 3: remove first two characters ‘0b’ of output binary st