Here's one that's been bugging me for quite a while. How do you come up with the optimal solution to the coin changing problem and do it fast? Now, based on this I did this. (C style code, c# flavour) However this is nowhere near fast. There have got to be faster algorithms out there, I just fail to come up with them. Some targets: for any N<50000 it should run in <0.5s on your average machine. Edit: Nevermind thread... I have found my mistake and corrected it.