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

与えられたお金で製品を購入できるかどうかを確認するC++プログラム


番号Nがあるとします。ケーキの売り手は、40ルピーのケーキと、それぞれ70ルピーのドーナツを販売しています。正確にNルピーで購入できるかどうかを確認する必要があります。

したがって、入力がN =110のような場合、40 + 70 =110であるため、出力はTrueになります。

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

o := false
Define a function dfs(), this will take i,
if i > n, then:
   return false
if i is same as n, then:
   return true
if dfs(i + 40), then:
   return true
return dfs(i + 70)
From the main method, do the following
n := N
o := dfs(0)
return o

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

#include <bits/stdc++.h>
using namespace std;
int n;
bool o = false;

bool dfs(int i) {
   if (i > n)
      return false;
   if (i == n)
      return true;
   if (dfs(i + 40))
      return true;
   return dfs(i + 70);
}
bool solve(int N) {
   n = N;
   o = dfs(0);
   return o;
}
int main(){
   int N = 110;
   cout << solve(N) << endl;
}

入力

110

出力

1

  1. サイズnの指定された配列がnレベルのBSTを表すことができるかどうかをC++で確認してください

    配列Aがあり、配列がnレベルのBSTを表すことができるかどうかを確認する必要があります。レベルがであるため、次のようにツリーを構築できます。数値をkとすると、kより大きい値は右側に移動し、kより小さい値は左側に移動します。 {50、20、9、25、10}と{50、30、20、25、10}の2つのリストがあるとします。 最初のものは無効ですが、2番目のものは有効です。 これを確認するには、BSTを作成して高さを確認するか、配列ベースのアプローチを使用します。アレイベースのアプローチは以下のようなものです- 2つの変数max=infinityを使用して、左側のサブツリーの最大制限をマー

  2. nをチェックするプログラムはPythonでkの合計として表示できるかどうか

    数nと別の数kがあるとします。 nがk個の素数の和として表現できるかどうかを確認する必要があります。 したがって、入力がn =30 k =3の場合、30は2 + 11 + 17のように表すことができるため、出力はTrueになります。 これを解決するには、次の手順に従います- n