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

C++で連続するゼロのペアをカウントする


1から始まるシーケンスジェネレータがあります。各ステップで0は10になり、1は01になります。したがって、次の変更が連続するステップで発生します-

ステップ1 − 01

ステップ2 − 1001

ステップ3 −01101001……

目標は、指定されたステップ数の連続する0のペアの数を見つけることです。

入力ステップが0の1ペア-0の場合、入力ステップは0の2ペア-1、入力ステップは0の3ペア1

ステップ4 − 1001011001101001

ステップ5 − 01101001100101101001011001101001

シーケンスは2の累乗で増加し、長さ12の後、12文字ごとに繰り返されることがわかります。したがって、これらの12の長さのシーケンスには、2組の連続する0があります。

ステップSの場合、12の長さのパターンの数は2S / 12

になります。

連続する2パターンの数=1(初期)+ 2 X S(残りの12回の長さの繰り返しの場合)

例を挙げて理解しましょう。

入力 −ステップ=5

出力 −連続するゼロのペアの数は− 5

説明 −上記のように、5番目のステップのシーケンスは-

Step 5: 01101001100101101001011001101001
Number of pairs of 0’s is 5.
Also with formula : tmp=25
/12= 32/12 = 2, pairs=1+ 2 x 2 = 5

入力 −ステップ=10

出力 −連続するゼロのペアの数は− 171

説明 −式を使用する場合− tmp =210/12 =1024/12 =85、ペア=1 + 2 x 85 =171

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

ステップ数を入力として取得し、steps =1の場合、連続する0のペアの数が0であるかどうかを確認します。steps=2または3の場合、そのようなペアの数は1です。

それ以外の場合は、式tmp =2input/12およびpairs=1 + 2*tmpを使用して計算します。

  • ステップの入力として可変小数を取ります。

  • 関数Zero_pairs(int decimal)は、10進数を取り、そのステップの連続するゼロのペアの数を返します。

  • 初期カウントを0とします。

  • 10進数<=1の場合、0を返します。

  • 10進数==2または10進数==3の場合。次に1を返します。

  • それ以外の場合は、temp =(pow(2、decimal))/ 12を計算し、カウントを2 * temp+1として計算します。

  • 結果としてカウントを返します。

#include<bits/stdc++.h>
using namespace std;
int Zero_pairs(int decimal){
   int count = 0;
   if(decimal <=1){
      count = 0;
   }
   else if(decimal == 2 || decimal == 3){
      count = 1;
   }
   else{
      int temp = (pow(2, decimal) / 12);
      count = 2 * temp + 1;
   }
   return count;
}
int main(){
   int decimal = 7;
   cout<<"Count of Pairs Of Consecutive Zeros are: "<<Zero_pairs(decimal);
   return 0;
}

出力

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

Count of Pairs Of Consecutive Zeros are: 21

  1. C++ではビットごとのORを偶数としてペアをカウントします

    整数配列が与えられ、タスクは、与えられた配列値を使用して形成できるペアの総数をカウントし、ペアに対するOR演算が偶数になるようにすることです。 OR演算の真理値表を以下に示します A B AVB 0 0 0 1 0 1 0 1 1 1 1 1 入力 − int arr [] ={2、5、1、8、9} 出力 −偶数としてビットごとのORを持つペアの数は− 2 説明 − a1 a2 a1Va2 2 5 7 2 1 3 2 8 10

  2. C++で配列内の除算可能なペアをカウントします

    整数要素を含む任意のサイズの配列が与えられます。タスクは、ペアの1つの要素がペアの別の要素を分割するように、配列内のペアの数を計算することです。 配列は、同じタイプの要素の固定サイズの順次コレクションを格納できる一種のデータ構造です。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。 例 Input − int arr[] = {1, 2, 3, 6} Output − count is 4 説明 −(1,2)、(1,3)、(1,6)、および(3,6)は、ペアの1つの要素が別の要素を分