#include <iostream> using namespace std; const int Len = 66; const int Divs = 6; void subdivide( char ar[], int low, int high, int level ); int main() { char ruler[Len]; int i; for ( i = 1; i < Len - 2; i++ ) ruler[i] = ' '; ruler[Len - 1] = '\0'; int max = Len - 2; int min = 0; ruler[min] = ruler[max] = '|'; std::cout << ruler << std::endl; for ( i = 1; i <= Divs; i++ ) { subdivide( ruler, min, max, i ); std::cout << ruler << std::endl; for ( int j = 1; j < Len - 2; j++ ) ruler[j] = ' '; // reset to blank ruler } return 0; } void subdivide( char ar[], int low, int high, int level ) { if ( level == 0 ) return; int mid = ( high + low )/ 2; ar[mid] = '|'; subdivide( ar, low, mid, level - 1 ); subdivide( ar, mid, high, level - 1 ); }

I know the basics of functions, arrays, pointers, etc. My current project is 2d pong, so these things don't need to be explained. However, I always skipped recursion because I could never wrap my head around it. Thanks for any help.