床を照らすのに必要なランプを見つけるためのC++コード
n行m列のグリッドに分割されたフロアがあるとします。今、床はランプを使って照らされなければなりません。ランプを2つのセルの境界に配置すると、2つのセルを照らすことができます。ランプを垂直方向の境界線に配置すると、セルが左右に点灯し、水平方向の境界線に配置すると、セルが前後に点灯します。 nとmが与えられた場合、床全体を照らすのに必要なランプの最小数を見つける必要があります。
したがって、入力がn =5、m =3の場合、出力は8になります。
ステップ
これを解決するには、次の手順に従います-
res := (n * m + 1) / 2 return res
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int n, int m) { int res = (n * m + 1) / 2; return res; } int main() { int n = 5, m = 3; cout<< solve(n, m); return 0; }
入力
5, 3
出力
8
-
C++で最短のスーパーストリングを見つける
文字列の配列Aがあるとすると、Aの各文字列をサブ文字列として含む最小の文字列を見つける必要があります。また、Aの文字列がAの別の文字列のサブ文字列ではないと想定することもできます。 したがって、入力が[dbsh、 dsbbhs、 hdsb、 ssdb、 bshdbsd]の場合、出力は hdsbbhssdbshdbsdになります。 これを解決するには、次の手順に従います- 関数calc()を定義します。これには、a、b、が必要です。 初期化i:=0の場合、i
-
C++で最も近い回文を見つける
数nがあるとすると、回文である最も近い数を取得する必要があります。したがって、回文は、絶対差が小さい数よりも少ないか、多い可能性があります。したがって、数値が145のような場合、結果は141になります。 これを解決するには、次の手順に従います- sn:=nのサイズ snが1と同じ場合、- n [0]を1減らし、サイズn[0]の1の文字列を返します half_sn:=(sn + 1)/ 2 half_val:=stol(インデックス0からhalf_snまでのnの部分文字列 配列候補を定義する={10^(sn)– 1、10 ^(sn-1)-1、10 ^(sn-1)+ 1、10