Project Euler Problem 31
阿新 • • 發佈:2018-12-16
In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation:
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p). It is possible to make £2 in the following way:
1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p How many different ways can £2 be made using any number of coins?
#include <iostream>
using namespace std;
class PE0031
{
public:
int ways(int target, int avc);
};
int PE0031::ways(int target, int avc)
{
// eight coin: 1p, 2p, 5p, 10p, 20p, 50p, L1 (100p) and L2 (200p)
int coins[8] = {1, 2, 5, 10, 20, 50, 100, 200};
if(avc == 0)
{
return 1;
}
int res = 0;
while(target >= 0 && avc>0)
{
res += ways(target, avc-1);
target -= coins[avc];
}
return res;
}
int main()
{
PE0031 pe0031;
cout << "L2(200p) can be made using any number of coins different ways ";
cout << pe0031.ways(200, 7) << endl;
return 0;
}