Professional Documents
Culture Documents
maxcoins(int, int);
change(string);
max(int, int);
coins_r(int[], int);
count++;
}
file.close();
//Check if numbers match
if (countCoins != count)
{
cerr << "Actual number of coins and first line don't
match. Closing program." << endl;
system("pause.exe");
exit(1);
}
}
else
{
cerr << "Unable to open file. Closing program." << endl;
system("pause.exe");
exit(1);
}
int maxVal = coins_r(coins, countCoins);
cout << "Max Value: " << maxVal << endl;
return 0;
}
int maxcoins(int a, int b)
{
if (a > b)
{
return 0;
}
return 1;
}
int change(string str)
{
// code from cplusplus
int num;
istringstream convert(str);
if (!(convert >> num))
{
num = -1;
}
return num;
}
int max(int a, int b)
{
if (a > b)
{
return a;
}
return b;
}
int coins_r(int coins[], int numCoins)
{
int coinsp[20];
int set[20];
int numbers[20];
int vindex[20];
int location;
int index = numCoins;
int count = 0;
int temp = -1;
vindex[0] = -1;
vindex[1] = -1;
coinsp[0] = 0;
coinsp[1] = 1;
numbers[0] = 0;
numbers[1] = coins[1];
for (int i = 2; i <= numCoins; i++)
{
numbers[i] = max(coins[i] + numbers[i - 2], numbers[i - 1]);
location = maxcoins(coins[i] + numbers[i - 2], numbers[i 1]);
if (location ==
{
vindex[i] =
coinsp[i] =
}
else
{
vindex[i] =
coinsp[i] =
}
}
0)
i - 2;
i;
i - 1;
0;