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

クレイジーライターでn文字を入力した後、最終的な文字数をカウントするC++プログラムがあります


n個の要素を持つ配列Aがあり、別の値cがそこにあるとします。私たちのシステムには、文字を入力できるクレイジーなワードプロセッサがありますが、連続してc秒間入力しないと、書かれた文字がすべて削除されます。 A [i]は、i番目の文字を入力した時刻を表します。 n文字すべてを入力した後、画面に残る最終的な文字数を見つける必要があります。

したがって、入力がA =[1、3、8、14、19、20]のような場合。 c =5の場合、出力は3になります。これは、2番目の8で画面に3つの単語が表示されるためです。次に、2番目の13ですべてが消えます。14秒と19秒で、さらに2文字が入力され、最後に2番目の20で、さらに1文字が入力され、合計3文字が画面に残ります。

ステップ

これを解決するには、次の手順に従います-

s := 1
n := size of A
for initialize i := 1, when i < n, update (increase i by 1), do:
   if (A[i] - A[i - 1]) <= c, then:
      (increase s by 1)
   Otherwise
      s := 1
return s

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A, int c) {
   int s = 1;
   int n = A.size();
   for (int i = 1; i < n; i++) {
      if ((A[i] - A[i - 1]) <= c) {
         s++;
      } else {
         s = 1;
      }
   }
   return s;
}
int main() {
   vector<int> A = { 1, 3, 8, 14, 19, 20 };
   int c = 5;
   cout << solve(A, c) << endl;
}

入力

{ 1, 3, 8, 14, 19, 20 }, 5

出力

3

  1. 構成の数を数えるプログラムは、C++でドミノとトロミノで領域を埋めるためにあります

    ドミノとトロミノの2つの形があるとします。ドミノは2x1の形で、トロミノは「L」のような形です。以下のように回転させることができます- 数がnの場合、2xnのボードにこれらの2つのタイプの部品を充填するための構成の数を見つける必要があります。タイリングで知っているように、すべての正方形はタイルで覆われている必要があります。 したがって、入力が3の場合、出力は5になります。したがって、配置は[XYZ XXZ XYYXXYXYY]と[XYZYYZXZZ XYY XXY]になります。ここでは、タイルごとに異なる文字が使用されます。 これを解決するには、次の手順に従います- サイズN

  2. C++でバイナリ行列をゼロ行列に変換する演算の数をカウントするプログラム

    バイナリ行列があるとします。ここで、1つのセルを取得し、そのセルとそのすべての隣接セル(上、下、左、右)を反転する操作について考えてみます。行列に0のみが含まれるように、必要な操作の最小数を見つける必要があります。解決策がない場合は、-1を返します。 したがって、入力が次のような場合 0 0 1 0 その場合、出力は3になります。 これを解決するには、次の手順に従います- サイズの配列ディレクトリを定義します:4 x 2:={{1、0}、{0、1}、{-1、0}、{0、-1}} const int inf =10 ^ 6 関数getP