C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

未読の章の数を数える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

  1. 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

  2. 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