-
C++で部分的に満たされた数独グリッドを解決するためのプログラム
部分的に塗りつぶされた数独グリッドがあり、これを解決する必要があるとします。数独は9×9の数字グリッドであり、グリッド全体も3×3のボックスに分割されていることがわかっています。数独を解決するためのルールがいくつかあります。 この問題を解決するには、1から9までの数字を使用する必要があります。 1行、1列、または1つの3×3ボックスで1桁を繰り返すことはできません。 バックトラッキングアルゴリズムを使用して、数独問題の解決を試みます。一部のセルが数字で埋められると、それが有効かどうかをチェックします。無効な場合は、他の番号をチェックします。すべての数字が1〜9でチェックされ、
-
C++で二分木の右葉の合計を見つけるプログラム
二分木があるとすると、与えられた二分木のすべての正しい葉の合計を見つける必要があります。 したがって、入力が次のような場合 バイナリツリーにはそれぞれ値7と10の2つの右葉があるため、出力は17になります。 これを解決するには、次の手順に従います- 関数dfs()を定義します。これにより、ノード、追加、が取得されます。 ノードがnullの場合、- 戻る ノードの左側がnullで、ノードの右側がnullで、addがゼロ以外の場合、- ret:=ret+ノードの値 dfs(ノードの左側、false) dfs(ノードの右側、true)
-
C++で最も深いノードの合計を見つけるプログラム
二分木があるとしましょう。その最も深い葉の値の合計を見つける必要があります。したがって、ツリーが次のような場合- その場合、出力は11になります。 これを解決するには、次の手順に従います- マップmとmaxDepthを定義します 再帰メソッドsolve()を定義します。これはノードとレベルを取り、最初はレベルは0です ノードが存在しない場合は、戻ります maxDepth:=レベルの最大値とmaxDepth ノードの値だけm[レベル]を増やします 解決(ノードの左側、レベル+ 1) 解決(ノードの右側、レベル+ 1) mainメソッドで
-
C++の列番号からスプレッドシートの列タイトルを検索するプログラム
正の整数値があるとします。スプレッドシートに表示されている対応する列タイトルを見つける必要があります。したがって、[1:A]、[2:B]、[26:Z]、[27:AA]、[28:AB]など したがって、入力が29のような場合、出力はACになります。 これを解決するには、次の手順に従います- nがゼロ以外の場合、-を実行します。 n:=n − 1 res:=res + n mod 26+AのASCII n:=n / 26 配列の解像度を逆にします 解像度を返す 理解を深めるために、次の実装を見てみましょう- 例 #include <bit
-
C++の列タイトルからスプレッドシートの列番号を検索するプログラム
スプレッドシートの列タイトルがあるとします。スプレッドシートの列番号はアルファベットであることがわかっています。これはAから始まり、Zの後に、AA、AB、ZZ、そして再びAAA、AAB、ZZZというように続きます。したがって、列1はA、列27はZです。ここでは、列の数が指定されている場合に列文字を取得する方法を説明します。したがって、列番号が80の場合、CBになります。したがって、番号から対応する列のタイトルを見つける必要があります。入力が30のような場合、ADになります。 例 #include<iostream> #include<algorithm> using n
-
C++で特定の二分木を剪定するプログラム
すべてのノードの値が0または1のいずれかであるバイナリツリーがあるとします。1を含まないすべてのサブツリーが削除された同じツリーを見つける必要があります。したがって、ツリーが次のような場合- これを解決するには、次の手順に従います- 再帰メソッドsolve()を定義します。これにより、ノードが取得されます。メソッドは次のようになります- ノードがnullの場合、nullを返します ノードの左側:=solve(ノードの左側) ノードの権利:=solve(ノードの権利) ノードの左側がnullで、ノードの右側もnullで、ノード値が0の場合、nullを返します
-
C++で有効な三角形のトリプレットの数を数えるプログラム
数の配列があるとすると、三角形の辺の長さとして取ると、三角形を作ることができる配列から選択されたトリプレットの数を見つける必要があります。したがって、入力が[2,2,3,4]の場合、最初の2を使用する3つのトリプレット[2,3,4]、2番目の2を使用する[2,3,4]があるため、結果は3になります。 [2,2,3]。 これを解決するには、次の手順に従います- ret:=0、n:=numのサイズ、numの並べ替え n −1から0までの範囲のiの場合 右:=i − 1、左:=0 左<右 合計:=nums[左]+nums[右] nums [i]の場合、retを
-
C++で指定された数に等しい積を持つトリプレットの数を数えます
長さがnで数値がMの整数の配列Arr[]が与えられます。この配列には、正の整数のみが含まれています。目標は、積がMに等しいArr[]の要素のトリプレットをカウントすることです。 これを行うには、3つのforループを使用します。 arr [x] * arr [y] * arr [z] =Mかつx!=y!=zの場合、カウントをインクリメントします。 (0 <=x、y、z 例を挙げて理解しましょう。 入力 arr[]= { 1,2,3,0,2,4 }, M=24 出力 Number of triplets with product M: 2 説明 Triplets with arr
-
C++で素因数が2と3しかない範囲から数を数えます
数値の範囲を定義するために、STARTとENDの2つの数値が提供されています。目標は、素因数が2と3のみで、[START、END]の範囲にある数値を見つけることです。 これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、数値が2と3でのみ割り切れるかどうかを確認します。割り切れる場合は、除算して減らします。そうでない場合は、ループを解除します。結局、数が1に減ると、その要因は2と3だけになります。 例を挙げて理解しましょう。 入力 START=20 END=25 出力 Numbers with only 2 and 3 as prime factors: 1
-
C++では0を数字として数えます
数値Nが提供されます。目標は、数字が0で、範囲が[1、N]の数値を見つけることです。 0になるまで数字をチェックします。 例を挙げて理解しましょう。 入力 N=11 出力 Numbers from 1 to N with 0 as digit: 1 説明 Starting from i=10 to i<=11 Only 10 has 0 as a digit. No need to check the range [1,9]. 入力 N=100 出力 Numbers from 1 to N with 0 as digit: 10 説明 10, 20, 30, 4
-
C++のすべての配列要素で割り切れる範囲の数値をカウントします
数値の範囲を定義するために、STARTとENDの2つの数値が提供されています。また、正の数の配列Arr[]。目標は、Arr []のすべての要素で割り切れる、[START、END]の範囲内にあるすべての数値を見つけることです。 方法1(ナイーブアプローチ) これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、その数値が配列のすべての要素で割り切れるかどうかを確認します。はいの場合、カウントをインクリメントします。 方法2(配列要素のLCMによる除算性を確認する) すべての配列要素のLCMを見つけて、そのLCMで完全に割り切れる[START、END]の範囲内のすべての数値を
-
C ++ではXで割り切れるが、Yでは割り切れない1からNの範囲の数値をカウントします。
数値Nが提供されます。目標は、YではなくXで割り切れ、[1、N]の範囲にある数値を見つけることです。 例を挙げて理解しましょう。 入力 N=20 X=5 Y=20 出力 Numbers from 1 to N divisible by X not Y: 2 説明 Only 5 and 15 are divisible by 5 and not 10. 入力 N=20 X=4 Y=7 出力 Numbers from 1 to N divisible by X not Y: 5 説明 Numbers 4, 8, 12, 16 and 20 are divisible by
-
C++でゼロ以外のすべての数字で割り切れる範囲内の数値をカウントします
数値の範囲を定義するために、STARTとENDの2つの数値が提供されます。目標は、ゼロ以外のすべての数字で割り切れる[START、END]の範囲内のすべての数値を見つけることです。これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、whileループを使用して数値がゼロ以外のすべての数字で割り切れるかどうかを確認します。はいの場合、カウントをインクリメントします。 例を挙げて理解しましょう。 入力 START=10 END=20 出力 Numbers that are divisible by all its non-zero digits: 14 説明 Num
-
数値とその桁の合計の差がC++の特定の値より大きい数値をカウントします
D. 1からNまでの数値をトラバースすることでこれを行い、各数値について、whileループを使用してその桁の合計を計算します。数値と計算された桁の合計にDより大きい差があるかどうかを確認します。 例を挙げて理解しましょう。 入力 N=15 D=5 出力 Numbers such that difference b/w no. and its digit sum greater than value D: 6 説明 Numbers 10, 11, 12, 13, 14, 15 satisfy the condition. ( 10-1, 11-2, 12-3, 13-4, 14-5
-
C++の範囲内の2つの数値の一般的な倍数の数
AとBの2つの数字が与えられます。また、数字の範囲を定義するためにSTARTとENDの2つの数字が与えられます。 Athタイルは白く塗られ、Bthタイルは黒く塗られています。タイルが黒と白の両方でペイントされている場合は、灰色になります。目標は、灰色のタイルの総数を見つけることです。 これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、数値がAとBの両方の倍数であるかどうかを確認します。はいの場合は、カウントをインクリメントします。 例を挙げて理解しましょう。 入力 START=10 END=20 A=3 B=6 出力 Common multiples of A
-
C ++で桁の合計がYであるrange[L、R]からの数値の数
数値の範囲を定義するために、STARTとENDの2つの数値が提供されます。目標は、指定された数値Yに等しい桁の合計を持つ範囲[START、END]内のすべての数値を見つけることです。 これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、whileループを使用してその桁の合計をカウントします。この合計がYに等しい場合は、カウントを増やします。 例を挙げて理解しましょう。 入力 START=10 END=20 Y=4 出力 Numbers such that digit sum is equal to Y: 1 説明 Number 13 has digit su
-
桁の合計がNで、数値がC++でMで割り切れるゼロ以外の桁のみを持つ範囲間の数値の数
数値の範囲を定義するために、STARTとENDの2つの数値が提供されます。目標は、[START、END]の範囲内で、桁が0でなく、桁の合計が指定された数値Nに等しいすべての数値を見つけることです。数字はMで割り切れる これを行うには、STARTからENDまで数値をトラバースし、数値ごとに、whileループを使用してその桁の合計をカウントします(すべての桁がゼロ以外の場合のみ)。この合計がNに等しく、数がMで割り切れる場合は、カウントをインクリメントします。 例を挙げて理解しましょう。 入力 START=1 END=100 N=9 M=6 出力 Numbers with digit
-
C++でソートされた配列内の小さい要素または等しい要素の数
整数の配列が与えられます。目標は、指定された値K以下の配列の要素の数を見つけることです。 入力 Arr[]= { 1, 2, 3, 14, 50, 69, 90 } K=12 出力 Numbers smaller or equal to K: 3 説明 Numbers 1,2,3 is smaller or equal to 12. 入力 Arr[]= { 12, 13, 13, 13, 14, 50, 54, 100 } K=14 出力 Numbers smaller or equal to K: 5 説明 Numbers 12, 13, 14 are smaller
-
C ++でそれらの合計がSであり、XORがKであるように、正の数の順序対をカウントします。
2つの数値SとKが与えられます。目標は、それらの合計がSでXORがKになるような正の数の順序対を見つけることです。 これを行うには、i=1からi
-
C++で製品がN未満の順序対をカウントします
数Nが与えられます。目標は、積がN未満になるような正の数の順序対を見つけることです。 これを行うには、i =1からi