未読の章の数を数えるC++コード
ペアPの配列があるとします。ここで、P [i]は(l、r)の形式であり、別の数kがあります。n章の本を読むことを検討してください。そのため、本の1ページは正確に1つの章に属し、各章には少なくとも1つのページが含まれます。いくつかのページを読み、読んでいない最初のページとして番号kのページをマークしました。まだ完全に読んでいない章の数を見つける必要があります。 P[i]は章のページ番号の範囲を表します。
したがって、入力がP =[[1、3]、[4、7]、[8、11]]のような場合; k =4の場合、最初の章を読んだので、出力は2になります。さらに、2つの章を読む必要があります。
ステップ
これを解決するには、次の手順に従います-
n := size of P for initialize i := 1, when i <= n, update (increase i by 1), do: if k >= P[i - 1, 0] and k <= P[i - 1, 1], then: return n - i + 1 return 0
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; int solve(vector<vector<int>> P, int k){ int n = P.size(); for (int i = 1; i <= n; i++){ if (k >= P[i - 1][0] && k <= P[i - 1][1]) return n - i + 1; } return 0; } int main(){ vector<vector<int>> P = { { 1, 3 }, { 4, 7 }, { 8, 11 } }; int k = 4; cout << solve(P, k) << endl; }
入力
{ { 1, 3 }, { 4, 7 }, { 8, 11 } }, 4
出力
2
-
C++で長方形の正方形の数を数える
=Bとなるように、長さL、幅Bの長方形が与えられます。目標は、サイズLXBの長方形が収容できる正方形の数を見つけることです。 上の図は、サイズ3 X 2の長方形を示しています。2、2X2の正方形、6,1X1の正方形があります。 総正方形=6+ 2=8。 サイズLXBのすべての長方形には、1X1の正方形のL*B数があります。 最大の正方形のサイズはBXBです。 L =B =1の場合、正方形=1。 L =B =2の場合、正方形=1 + 4 =5(2X2の1、1X1の4) L =B =3の場合、正方形=1 + 4 + 9 =14(3X3の1、2X2の4、1
-
C++の階乗の桁を数える
整数値が与えられ、タスクは最初に数値の階乗を計算し、次に結果の合計桁数を計算することです。 階乗数とは 数値の階乗は、数値の桁を1で除算しながら、数値の桁を乗算することによって計算されます。これは、記号「!」、つまり0!、1!、2!、3!、5!、..で示されます。 。、等。 0の階乗!と1!常に1です。 I.e. factorial of 2 = 2 * (2-1) = 2 * 1 = 2 factorial of 3 = 3 * (3-1) * (2-1) = 3 * 2 * 1 = 6 例 Input − factorial(6) O