递归函数
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);
}
////////////////////////////////////////////////////////////////////////////////////