title: Karatsuba C++ Implementation
body: <p>I'm having some trouble implementing the Karatsuba algorithm.  My project limits me to the following libraries: iostream, iomanip, cctype, cstring.  Also, I'm limited to only using the integer built-in type and arrays/dynamic arrays to handle numbers (only unsigned integers will be input).  I've built a class to handle integers of arbitrary size using dynamic arrays.  I need to implement a function that multiplies big integers, and I'd like to use Karatsuba if possible.  The trouble I'm running into is how to break apart large integers and do the multiplications called for in the algorithm.  I assume this should be done recursively.  I was hoping someone could give me an example of how to do this.  </p>
  
  <p>For example:  </p>
  
  <p>I have two numbers stored in dynamic arrays.  Let's say they are:</p>
  
  <p>X = 123456789123456789123456789
  Y = 987654321987654321987654321987654321</p>
  
  <p>How would Karatsuba need to handle this, given the storage limitations on the unsigned int type?  Any help would be much appreciated!</p>