- 递归recursive
- 定义:一种直接或间接引用自身的定义方法。一个合法的递归包括两部分:基础情况和递归部分。
-
- 斐波那契数列
long Fib(long n)
{
if(n<=1) return n;
else return Fib(n-2)+Fib(n-1);
}
函数Fib(n)中又调用了Fib(n-1)和Fib(n-2)。这种在函数体内调用自己的做法成为递归调用,包含递归调用的函数成为递归函数。
-
- 递归算法实例
例1-2 逆序输出正整数的各位数
设有正整数n=12345,现希望以各位数的逆序形式输出,即54321.设k位正整数为d1d2...dk为了以逆序形式输出各位数dkdk-1...d1,可以分为两步:
- 首先输出末位数dk;
- 然后输出由前k-1位组成的正整数d1d2...dk-1的逆序形式。
程序代码:
#include<iostream.h>
void PrintDigit(unsigned int n)
{
cout<<n%10;//输出最后一位数
if(n>=10) PrintDigit(n/10);、、以逆序输出前k-1位数
}
void main()
{
unsigned int n;
cin>>n;
PringDigit(n);
}