C++でxとの合計がxとのXORに等しい数をカウントします
私たちは数Xです。目標は、Xとの合計がXとのXORに等しい0からXまでの数を見つけることです。
これを行うには、noをトラバースします。 i=0からi<=Xまで、および各iについて、(i + X ==i ^ X)の場合、カウントをインクリメントします。
例を挙げて理解しましょう。
入力 − x =6
出力 −Xとの合計==XとのXOR:2
の数の数説明 −数字は0と1のみです。
入力 − x =20
出力 −Xとの合計==XとのXOR:8
の数の数説明 −数字は0 1 2 3 8 9 10 11
以下のプログラムで使用されているアプローチは次のとおりです
-
整数Xを取ります。
-
関数sumisXOR(int x)はxを取り、xとの合計がxとのxorと等しい数のカウントを返します。
-
初期カウントを0とします。
-
i=0からi<=xまでトラバースします。
-
i + x ==i^xの場合。インクリメントカウント
-
forループカウントの最後に、目的の結果が得られます...
-
カウントを返し、印刷します。
例
#include <bits/stdc++.h> #include <math.h> using namespace std; int sumisXOR(int x){ int count = 0; for (int i = 0; i <= x; i++){ if((i+x)==(i^x)) { count++; } } return count; } int main(){ int X = 15; int nums=sumisXOR(X); cout <<endl<<"Count of numbers whose sum with X == XOR with X: "<<nums; return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of numbers whose sum with X == XOR with X: 1
-
Xとの合計がC++のフィボナッチ数であるノードをカウントします
ノードの重みを数値として持つ二分木を指定します。目標は、その数がフィボナッチ数であるような重みを持つノードの数を見つけることです。フィボナッチ数列の数は次のとおりです。0、1、1、2、3、5、8、13…。n番目の数はの合計です。 (n-1)番目と(n-2)番目。重みが13の場合、それはフィボナッチ数であるため、ノードがカウントされます。 例 入力 temp=1。値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes whose sum with X is a Fibonacci number are: 3 説明 we are given with
-
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