-
シリーズ2、12、28、50、77、112、152、198、…のN番目の項をC++で検索するプログラム
この問題では、番号Nが与えられます。私たちのタスクは、C ++でシリーズ2、12、28、50、77、112、152、198のN番目の項を見つけるプログラムを作成することです。 問題の説明 −シリーズのN番目の項を見つけるため。 2、12、28、50、77、112、152、198、...N用語 シリーズの将軍を見つけます。 問題を理解するために例を見てみましょう 入力 − n =6 出力 − 112 ソリューションアプローチ: ここでは、級数が放物線状に増加しているため、一般的な項は2次方程式になります。 したがって、シリーズの一般式は次のようになります T N
-
C++での複素数の乗算
複素数を表す2つの文字列があるとします。それらを解析して複素数の乗算を実行し、結果を文字列として返す必要があります。 したがって、入力が「1+-1i」や「1+-1i」のような場合、結果は「0+-2i」になります。 これを解決するには、次の手順に従います- aa:=最初の複素数の実数と虚数のペア bb:=2番目の複素数の実数と虚数のペア x:=aa.real * bb.real – aa.img * bb.img y:=aa.real * bb.img + aa.img * bb.real 文字列を「x+yi」として返します 理解を深めるために、次の実装を見てみましょう-
-
C++での最小時間差
「時:分」形式の24時間制の時点のリストがあるとすると、リスト内の任意の2つの時点間の最小分差を見つける必要があります。したがって、入力が[“ 12:30”、” 15:17”]の場合、167が返されます。 これを解決するには、次の手順に従います- サイズ24*60 + 1のokという配列を定義すると、最初はすべてfalseです。 n:=tpのサイズ 0からn–1の範囲のiの場合 hr:=時間からの時間部分 min:=文字列の分の部分 時間:=時間*60+分 ok [time]がtrueの場合は0を返し、それ以外の場合はok[time]をtrueに設定します。 last:=0、
-
C++での最適な除算
2/3/4です。これで、任意の位置に任意の数の括弧を追加して、これらの操作の優先度を変更できます。最大の結果を得るには、括弧を追加する方法を見つける必要があります。対応する式を文字列形式で見つける必要があります。式に冗長な括弧を含めることはできません。したがって、入力が[1000,100,10,2]の場合、結果は「1000 /(100/10/2)」になります。 これを解決するには、次の手順に従います- n:=nums配列のサイズ nが0の場合、空白の文字列を返します。 num:=nums [0] as string nが1の場合、numを返します nが2の場合、num conc
-
C++の次のGreaterElementIII
正の32ビット整数nがあるとすると、整数nに存在するのとまったく同じ桁を持ち、値がnより大きい最小の32ビット整数を見つける必要があります。そのような正の32ビット整数がない場合は、-1を返します。 したがって、数値が213の場合、結果は231になります。 これを解決するには、次の手順に従います- s:=n as string、sz:=size of s、ok:=false 範囲sz–2から0のiの場合 s [i]
-
C++での配列の入れ子
0からN-1までのすべての整数を含む長さNのゼロインデックス配列Aがあるとします。セットSの最長の長さを見つけて返す必要があります。ここで、S [i] ={A [i]、A [A [i]]、A [A [A [i]]]、...}以下のルール。ここで、Sの最初の要素がインデックス=iの要素A[i]の選択で始まり、Sの次の要素はA [A [i]]であり、次にA [A[A[i]]]…であると考えます。そのアナロジーにより、Sで重複要素が発生する直前に追加を停止します。したがって、配列がA =[5,4,0,3,1,6,2]の場合、出力はA[として4になります。 0] =5、A [1] =4、A [2] =
-
C++で有効な三角数
配列が非負の整数で構成されているとすると、私たちのタスクは、三角形の辺の長さとして三角形を作成できる配列から選択されたトリプレットの数を数えることです。したがって、入力が[2,2,3,4]の場合、結果は最初の2を使用して[2,3,4]、2番目の2を使用して[2,3,4]、[2,2]として3になります。 、3]。 これを解決するには、次の手順に従います- ret:=0、n:=numのサイズ、numの並べ替え n –1から0までの範囲のiの場合 右:=i – 1、左:=0 左<右 sum:=nums [left] + nums [right] nums [i]の場合、retを右–左
-
C++の2キーキーボード
テキストエディタに文字「A」が1つしかないとします。このレターに対して、ステップごとに2つの操作を実行できます- すべてコピー-メモ帳にあるすべての文字をコピーできます 貼り付け-前回コピーした文字を貼り付けることができます。 ここで、数nがあるとします。許可されている最小のステップ数を実行して、メモ帳で正確にnAを取得する必要があります。 nAを取得するには、最小ステップ数で結果を見つける必要があります。したがって、指定されたnが3の場合、答えは3になります。したがって、最初は「A」が1つだけです。次に、これをコピーして貼り付けると、「AA」が表示されます。これでもう一度貼り付けること
-
C++で重複するサブツリーを検索する
二分木があるとします。重複するすべてのサブツリーを見つける必要があります。したがって、重複するサブツリーの種類ごとに、それらのいずれかのルートノードを返す必要があります。したがって、-のようなツリーがあるとします。 重複するサブツリーは-です これを解決するには、次の手順に従います- 配列retを作成し、マップを作成しますm 再帰メソッドsolve()を定義します。これはノードを入力として受け取ります。これは次のように機能します- ノードがnullの場合、-1を返します x:=ノードの値を文字列として、「#」を連結します。 左:=ソルブ(ノードの左)、右:=ソルブ(ノード
-
C++でバイナリツリーを印刷する
これらのルールに基づいて、m *n2D文字列配列に二分木を表示する必要があるとします- 行番号mは、指定された二分木の高さと同じである必要があります。 列番号nは常に奇数である必要があります。 ルートノードの値は、配置できる最初の行の真ん中に配置する必要があります。ルートノードが存在する列と行は、残りのスペースを2つの部分に分割します。これらは左下部分と右下部分です。左下の部分に左のサブツリーを印刷し、右下の部分に右のサブツリーを印刷する必要があります。ここで、左下部分と右下部分は同じサイズである必要があります。一方のサブツリーがnoneで、もう一方がnoneでない場合でも、noneサブツリ
-
C++で配列を連続するサブシーケンスに分割する
昇順で並べ替えられた配列numがあるとします。各サブシーケンスが連続する整数で構成され、長さが少なくとも3になるように、1つ以上のサブシーケンスに分割できる場合にのみ、trueを返す必要があります。したがって、入力が[1,2,3,3,4、 4,5,5]の場合、2つの連続したシーケンスがあるため、出力はTrueになります。これらは[1,2,3,4,5]と[3,4,5]です。 これを解決するには、次の手順に従います- マップmを作成し、numsの頻度をmに格納し、numsのサイズをmに格納します cnt:=n 0からn–1の範囲のiの場合 x:=nums [i] m[x]およびm[x+
-
C++の美しいアレンジメントII
2つの整数nとkがあるとすると、1からnの範囲のn個の異なる正の整数を含み、次の規則に従うリストを作成する必要があります- リストが[a1、a2、a3、...、an]であるとすると、リスト[| a1 --a2 |、| a2 --a3 |、| a3 --a4 |、...、| an-1-an |]は正確にk個の一意の整数を持っています。したがって、複数の回答がある場合は、それらのいずれかを表示してください。 入力がn=3およびk=2のような場合、結果は[1,3,2]になります。 [1,3,2]には、1から3の範囲の3つの異なる正の整数があり、[2,1]には、正確に2つの異なる整数1と2がありま
-
C++の電球スイッチャーII
最初にオンになっているn個のライトがあり、壁に4つのボタンがある部屋があるとします。ボタンに対して正確にm個の未知の操作を実行した後、n個のライトのさまざまな種類のステータスを返す必要があります。したがって、n個のライトに番号[1、2、3 ...、n]のラベルが付いているとすると、これら4つのボタンの機能は次のようになります- すべてのライトを反転します。 偶数のライトを反転させます。 奇数のライトを反転させます。 (3k + 1)の数字、k =0、1、2、...のフリップライト ここで、n=3およびm=1の場合、4つの操作があります。これらは、[off、on、off]、[on、off、
-
C++のチェス盤でのナイト確率
NxNチェス盤が1つあるとすると、騎士はr番目の行とc番目の列から開始し、正確にK回移動しようとします。ここでは、行と列に0のインデックスが付けられているため、左上の正方形は(0、0)であり、右下の正方形は(N-1、N-1)です。 騎士はセルから8つの異なるセルに移動できます。これは、この図に示されています- 騎士が移動するたびに、8つの可能な移動の1つをランダムに選択します。騎士は、正確にK移動するか、チェス盤から離れるまで移動を続けます。騎士が動きを止めた後もボードに留まる確率を見つける必要があります。 したがって、入力が3、2、0、0のような場合、出力は0.0625になります
-
C++での単調増加桁数
非負の整数Nがあるとすると、単調に増加する桁でN以下の最大数を見つける必要があります。隣接する数字のxとyの各ペアがx<=yを満たす場合にのみ、整数の数字が単調に増加することがわかっています。したがって、入力が332の場合、結果は299になります。 これを解決するには、次の手順に従います- s:=文字列としてのN、i:=1、n:=sのサイズ while i =s [i – 1] iを1増やします if i
-
C++で数値に到達する
無限の数直線上の位置0に立っているとします。これで、位置ターゲットに目標があります。ここでは、それぞれの動きで、左側または右側に移動できます。 n番目の移動(1から開始)中に、nステップを実行します。目的地に到達するために必要な最小ステップ数を見つける必要があります。したがって、入力がtarget =3のような場合、2つのステップが必要です。 0から1、1から3。 これを解決するには、次の手順に従います- target:=| target |、cnt:=0 0の間、 cntを1減らします target:=target –cnt ターゲットが偶数の場合はcntを返し、そうでない場
-
C++でのグローバルおよびローカルの反転
[0、1、...、N --1]の順列Aがあるとします。ここで、NはAの長さです。ここで、(グローバル)反転の数はi
-
C++の文法のK番目の記号
最初の行に0があるとします。後続のすべての行で、前の行を見て、0の各出現を01に、1の各出現を10に置き換えます。N行とインデックスKがあると仮定します。行NでK番目のインデックス付きシンボルを見つける必要があります(Kの値は1インデックスです)(1インデックス)。したがって、N=4およびK=5の場合、出力は1になります。これは- 行1:0 行2:01 行3:0110 行4:01101001 これを解決するには、次の手順に従います- メソッドの名前がkthGrammarであるとします。これにはNとKが必要です。 Nが1の場合、0を返します kが偶数の場合、kthGramma
-
C++の森のウサギ
森の中で、それぞれのウサギが色を持っているとしましょう。これで、ウサギのサブセット(おそらくすべて)が、同じ色の他のウサギの数を教えてくれます。それらの答えは配列に配置されます。森にいる可能性のあるウサギの最小数を見つける必要があります。したがって、入力が[1,1,2]の場合、出力は5になります。これは、「1」と答えた2匹のウサギが同じ色、たとえば白である可能性があるためです。これで、「2」と答えたウサギを白くすることはできません。そうしないと、答えに一貫性がなくなります。 「2」と答えたウサギが黒だったとしましょう。次に、配列に応答しなかった他の2匹の黒いウサギが森にいるはずです。したがって
-
C++で幽霊を脱出
単純化されたパックマンゲームをプレイしているとします。ここで、ポイント(0、0)から開始し、宛先は(target [0]、target [1])です。マップ上にはいくつかのゴーストがあります。ここで、i番目のゴーストは(ghosts [i] [0]、ghosts [i] [1])から始まります。各ターンで、私たちとすべての幽霊は同時に(可能性があります)、北、東、西、または南の4つの基本的な方向のいずれかに移動し、最後のポイントから1単位離れた新しいポイントに移動します。ゴーストが私たちに到達する前にターゲットに到達できる場合にのみ、脱出できます(ゴーストが取る可能性のある特定の動きに対して)