递归函数

void recurs(argumentlist)
{
     statements1
     if(test)
            recurs(arguments)
    statements2
}

在满足条件是  statements1 按调用顺序执行 n 次
然后退出if后    statements2按调用相反方向执行n次
/////////////////////////////////////////////////////////////////////////
#include <iostream>
void countdown(int n);
int main()
{
// using namespace std;
 countdown(4);
 return 0;
}

void countdown(int n)
{
 using namespace std;
 cout<<"counting down ..."<<n<<endl;
 if(n>0)
  countdown(n-1);
 cout<<n<<"hehe.\n";
}
/////////////////////////////打印尺子图形代码////////////////////////
#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]=' ';
 }
 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);
}
////////////////////////////////////////////////////////////////////////////////////

posted @ 2007-02-05 02:25  Edward Xie  阅读(145)  评论(0编辑  收藏  举报