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

私たちが行った総売上高を調べるためのC++コード


4つのアイテムを販売していて、i番目のアイテムの価格が配列'cost[i]'で指定されているとします。現在、文字列「items」で指定された順序でアイテムを販売しています。私たちは、私たちが行った総売上高を知る必要があります。文字列「items」には1〜4の整数が含まれ、重複が存在する可能性があり、任意の順序にすることができます。

したがって、入力がcost ={10、15、10、5}、items ="14214331"の場合、出力は75になります。

ステップ

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

total := 0
for initialize i := 0, when i < size of items, update (increase i by 1), do:
   total := total + cost[items[i] - '0' - 1]
return total

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

#include <bits/stdc++.h>
using namespace std;
#define N 100
int solve(int cost[], string items) {
   int total = 0;
   for(int i = 0; i < items.size(); i++)
      total += cost[items[i] -'0' - 1];
   return total;
}
int main() {
   int cost[] = {10, 15, 10, 5};
   string items = "14214331";
   cout<< solve(cost, items);
   return 0;
}

入力

{10, 15, 10, 5}, "14214331"

出力

75

  1. C++で最小の構文解析ツリーを見つけるためのプログラム

    文字列内のブレークポイントを表す一意のソートされた番号のリストがあるとします。これらのルールからツリーを作成したい- 値(a、b)を持つノードがあり、aとbはブレークポイントです。これは、ノードが文字列内のインデックス[a、b]にまたがることを意味します。 ルートノードはすべてのブレークポイントにまたがっています。 (文字列全体)。 ノードの左右の子のスパンは順序付けられ、連続しており、親ノードのスパンが含まれています。 ブレークポイントの「a」のリーフノードのインデックスは、ブレークポイントの「b」のインデックスの前に1です。 ツリーのコストは、ツリー内のすべて

  2. C++で合計金額を支払うために必要なコインの最小数を調べます

    数Nがあり、1、10、および25通貨のコインに相当する無制限の数のコインがあるとします。正確な金額Nを支払うために使用する必要のあるコインの最小数を見つけます。Nが14であるとすると、コインの数は5になり、10の価値のあるコインが1つ、1の価値のあるコインが4つになります。 これを解決するには、次の手順を使用する必要があります- N <10の場合、N個の1バリューコインを返します 9およびN<25の場合、値を10で除算して結果を取得します。残りは、1つの値のコインでカバーされ、カウントを加算して結果を取得します。 25の場合は、25で除算し、結果を取得します。結果が25未満の場合は、2