能解释一下吗?
下面的程序是递归调用的,不是很明白,有谁能解释一下吗?谢谢了//ruler.cpp -- using recursion to subdivide a ruler
#include <iostream>
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]=' ';
}
system("pause");
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);
}