Problem31
/* * \file problem031.cpp * \brief Projece Euler - Problem31 * * \author Takushi Homma (b1006018@fun.ac.jp) */ #include <iostream> using namespace std; #define LMT 200 int main(int argc, char **argv) { int coins[8] = {1, 2, 5, 10, 20, 50, 100, 200}; int ways[LMT+1]; memset(ways, 0, (LMT+1)*sizeof(int)); ways[0] = 1; for (unsigned int i_c = 0; i_c < sizeof(coins)/sizeof(int); i_c++) { for (int i_w = coins[i_c]; i_w <= LMT; i_w++) { ways[i_w] += ways[i_w-coins[i_c]]; } } cout << ways[LMT] << endl; return 0; }