C++でのNより小さい2進数の数
入力として整数Nが与えられます。目標は、N未満で、バイナリ形式で表される整数の数を見つけることです。たとえば、入力Nが12の場合、12未満の数値は2進数で、0と1を数字として含む1、10、11です。答えは3になります。
例
入力
N=100
出力
Count of Binary Digit numbers smaller than N are − 4
説明
The Binary numbers less than 100 are − 1, 10, 11, 100
入力
N=120
出力
Count of Binary Digit numbers smaller than N are: 7
説明
The Binary numbers less than 100 are : 1, 10, 11, 100, 101, 110, 111
以下のプログラムで使用されるアプローチは次のとおりです −
このアプローチでは、整数ベクトルvecを使用します。これに最初に1をプッシュします。次の2進数を生成するために、vec(最初は1)から最後の数値(temp)を抽出します。次に、temp*10とtemp*10 + 1を使用して次を生成します。2進数は常に(1,10,11,100,110,111…。)になります。 vecから数字をポップし、それがNの増分カウントよりも小さい場合。
-
入力として整数Nを取ります。
-
関数Smaller_N(int N)はNを取り、Nより小さい2進数のカウントを返します。
-
初期カウントを0とします。
-
0と1のみを含む整数を格納するために整数ベクトルvecを取ります。
-
vec.push_back(1)を使用してベクトルに1を追加します。
-
whileループを使用して、vec []をトラバースし、最後にプッシュされたものをtemp =vec.back()として取り出し、vecから削除します。
-
temp <=Nの場合、カウントをインクリメントし、次の2進整数をtemp*10およびtemp*10 + 1として生成し、vecに追加します。
-
結果として、whileリターンカウントの終わりに。
例
#include <bits/stdc++.h> using namespace std; int Smaller_N(int N){ int count = 0; vector<int> vec; vec.push_back(1); while (!vec.empty()){ int temp = vec.back(); vec.pop_back(); if (temp <= N){ count++; int temp_2 = temp * 10; vec.push_back(temp_2); vec.push_back(temp_2 + 1); } } return count; } int main(){ int N = 1000; cout<<"Count of Binary Digit numbers smaller than N are: "<<Smaller_N(N); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of Binary Digit numbers smaller than N are: 8
-
C++で高さhのバランスの取れた二分木を数える
二分木の高さHが与えられます。目標は、指定された高さのバランスの取れたバイナリツリーの数/数を見つけることです。 二分木 −は、各ノードに最大2つの子(左の子と右の子)を持つツリーデータ構造です。 高さバランスのとれた二分木 −は、すべてのノードの2つのサブツリーの深さが1または0だけ異なるバイナリツリーとして定義されます。これは、すべてのノードの左側のサブツリーと右側のサブツリーの高さであり、最大差は1です。 次の図には、高さh=3で可能な高さのバランスが取れた二分木が含まれています。 入力 Height H=2 出力 Count of Balanced Binary Trees
-
N以下で、C++の合計がSである最小数
問題の説明 1からNまでのN個の数とS個の数が与えられます。タスクは、合計してSを与える最小数の数を出力することです 例 n=7およびs=10の場合、最低2つの数字が必要です (9, 1) (8, 2) (7, 3) (6, 4) アルゴリズム Answer can be calculated using below formula (S/N) + 1 if { S %N > 0} 例 #include <bits/stdc++.h> using namespace std; int getMinNumbers(int n, int s) { r