How to find all combinations of coins when given some dollar value [closed]

I looked into this once a long time ago, and you can read my little write-up on it. Here’s the Mathematica source. By using generating functions, you can get a closed-form constant-time solution to the problem. Graham, Knuth, and Patashnik’s Concrete Mathematics is the book for this, and contains a fairly extensive discussion of the … Read more

What is recursion and when should I use it?

There are a number of good explanations of recursion in this thread, this answer is about why you shouldn’t use it in most languages.* In the majority of major imperative language implementations (i.e. every major implementation of C, C++, Basic, Python, Ruby,Java, and C#) iteration is vastly preferable to recursion. To see why, walk through … Read more

How to [recursively] Zip a directory in PHP? [duplicate]

Here is a simple function that can compress any file or directory recursively, only needs the zip extension to be loaded. function Zip($source, $destination) { if (!extension_loaded(‘zip’) || !file_exists($source)) { return false; } $zip = new ZipArchive(); if (!$zip->open($destination, ZIPARCHIVE::CREATE)) { return false; } $source = str_replace(‘\\’, “https://stackoverflow.com/”, realpath($source)); if (is_dir($source) === true) { $files … Read more

GDB corrupted stack frame – How to debug?

Those bogus adresses (0x00000002 and the like) are actually PC values, not SP values. Now, when you get this kind of SEGV, with a bogus (very small) PC address, 99% of the time it’s due to calling through a bogus function pointer. Note that virtual calls in C++ are implemented via function pointers, so any … Read more

recursion versus iteration

Recursion is usually much slower because all function calls must be stored in a stack to allow the return back to the caller functions. In many cases, memory has to be allocated and copied to implement scope isolation. Some optimizations, like tail call optimization, make recursions faster but aren’t always possible, and aren’t implemented in … Read more