递归就是一种栈的变形
void fact(int n)
{
if(n>0)
{
fact(n-1);
for(int i=0;i<n;i++)
cout<<n;
cout<<endl;
}
int main()
{
int n;
cin>>n;
fact(n);
return 0;
}
若输入3
输出顺序是1
22
333
相当于先将333存于栈中,依次是22,1 倒序输出就体现了栈的性质
下面代码是将十进制转化为二进制
void change(int num)
{
if(num>0)
{
change(num/2);
cout<<num%2;
//若二者顺序写反了,则输出与正确结果相反的结果
//应该先达到递归终止条件,再写运算规则
}
}
int main()
{
int num;
cin>>num;
change(num);
return 0;
}
若想转化为其他进制将2换成其他数字就行
再写一下求阶乘的经典案例
long long jc(int n)
{
if(n==1) return 1; //递归终止条件
else
return jc(n-1)*n; //递归关系式
}
int main()
{
int n;
cin>>n;
cout<<jc(n)<<endl;
return 0;
}
相当于jc(n-1)*n jc(n-2)*n-1 .......jc(1)*2 jc(1) 的倒序输出