當前位置:編程學習大全網 - 編程軟體 - c++編程Coin Changing

c++編程Coin Changing

For your reference.

#include <vector>

#include <algorithm>

#include <string>

#include <iostream>

using namespace std;

int needCoins(vector<int>& T, vector<int>& Coins, int m)

{

if(m==0) return 0;

int k = 200000; //maximum

for(int i=0; i<Coins.size(); i++) {

if(Coins[i]>0 && m-T[i]>=0) {

vector<int> newCoins(Coins.begin(), Coins.end()); //a copy

newCoins[i]--;

int t = needCoins(T, newCoins, m-T[i]);

if(t!= -1 && k > t+1) k = t+1;

}

}

if(k==200000) return -1;

else return k;

}

int _tmain(int argc, _TCHAR* argv[])

{

vector<int> T;

T.push_back(1);

T.push_back(2);

T.push_back(5);

vector<int> Coins;

Coins.push_back(3);

Coins.push_back(2);

Coins.push_back(2);

int ret = needCoins(T, Coins, 8);

cout << ret << endl;

return 0;

}

  • 上一篇:a32,c32,分別怎麽算
  • 下一篇:辦公軟件及多媒體軟件與部隊管理信息化之間的關系
  • copyright 2024編程學習大全網