Mam problem ze zrozumieniem funkcji subdivide. Nie wiem jak działa tutaj rekurencja. I jeszcze mam pytanie co zwraca samo słowo return w tej funkcji.
#include<iostream>
#include <cstdlib>
const int Len = 66;
const int Divs = 6;
void subdivide(char ar[], int low, int high, int level);
using namespace std;
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] = '|';
cout << ruler << endl;
for (i = 1; i <= Divs; i++)
{
subdivide(ruler, min, max, i);
cout << ruler << endl;
}
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);
}