C++ 程式,用於檢查我們是否可以使用給定的錢購買產品


假設我們有一個數字 N。一個蛋糕賣家正在以 40 盧比的價格出售蛋糕,以 70 盧比的價格出售甜甜圈。我們需要檢查我們能否用正好 N 盧比購買其中的一些。

因此,如果輸入類似於 N = 110,則輸出將為 True,因為 40 + 70 = 110。

為了解決這個問題,我們將遵循以下步驟 −

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

更新於: 25-二月-2022

201 次瀏覽

開啟您的 事業

完成課程取得認證

開始
廣告