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