Project Euler Homework
|
00001 00013 #include <iostream> 00014 00015 int array[] = {1,2,5,10,20,50,100,200}; 00016 00017 unsigned sum=0; 00018 00019 //dynamic programming 00020 void remainder(int N, int idx) 00021 { 00022 N-= array[idx]; 00023 00024 if (N==0){ 00025 sum++; 00026 } 00027 else if (N<0) 00028 return; 00029 else { 00030 for (int i=idx;i>=0;i--) 00031 remainder(N,i); 00032 } 00033 } 00034 00035 int main() 00036 { 00037 for (int i=7;i>=0;i--) 00038 remainder(200,i); 00039 00040 std::cout<<sum<<std::endl; 00041 return 0; 00042 }