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

1からnまでのすべての数の合計セットビットをカウントするPythonプログラム。


正の整数nが与えられると、その2進表現に変更し、設定されたビットの総数をカウントします。

Input : n=3
Output : 4

アルゴリズム

Step 1: Input a positive integer data.
Step 2: then convert it to binary form.
Step 3: initialize the variable s = 0.
Step 4: traverse every element and add.
Step 5: display sum.
>

サンプルコード

# Python program to count set bits
# in all numbers from 1 to n.
def countbits(n):
   # initialize the counter
   c = 0
   for i in range(1, n + 1):
   c += bitsetcount(i)
   return c
   def bitsetcount(x):
      if (x <= 0):
      return 0
      return (0 if int(x % 2) == 0 else 1) + bitsetcount(int(x / 2))
      # Driver program
      n = int(input("Enter the value of n"))
print("Total set bit count is", countbits(n))

出力

Enter the value of n10
Total set bit count is 17

  1. Pythonのsの個別の部分文字列の数をカウントするプログラム

    文字列sがあるとすると、sの個別の空でない部分文字列の数を見つける必要があります。 したがって、入力がs =abaaの場合、サブストリングは[a、 b、 ab、 ba、 aa、 aba、 であるため、出力は8になります。 baa 、abaa]。 これを解決するには、次の手順に従います- トライ:=新しい地図 n:=sのサイズ 0からn-1の範囲のiの場合、do curr:=trie iからn-1の範囲のjの場合、do c:=s [j] cがcurrにない場合は、 curr [c]:=新しいマップ curr:=curr [c] curr [*]:=True

  2. 水平ブリックパターンの数を数えるプログラムは、Pythonのブリックのセットから作成できます

    れんがと呼ばれる数値のリストと、幅と高さの他の2つの値があるとします。ブリック[i]の各要素は、長さがブリック[i]単位、幅が1単位のブリックを表します。与えられた幅と高さのレンガの完全なレイアウトが得られるように、レンガを配置する方法の数を見つける必要があります。レンガは再利用できますが、水平にしか置くことができません。 したがって、入力がブリック=[2、1]幅=3高さ=2の場合、-であるため、出力は9になります。 これを解決するには、次の手順に従います- w:=幅と同じサイズのリストで、最初の位置に1を挿入し、残りは0です 0から幅の範囲のiについては、 w [i]がゼロ