递归函数是会调用自己的函数。
下面我们用递归函数来实现输出正整数N各个位上的数字。
先看代码,后面我们来展示执行的过程:
- #include
- using namespace std;
-
- /*输出正整数n各个位上的数字
- 暂时不支持0和负数*/
- void print(unsigned int n)
- {
- if (n == 0)
- {
- return;
- }
- unsigned int m = n % 10;//求出最后一位数字
- n = n / 10;//抛弃最后一位数字
- print(n);//使用剩下的数字构成的整数,再重复此过程
- cout << m<<" ";//输出最后一位数字
- }
-
- int main()
- {
- print(123456);
- cout << endl;
- print(300);
- cout << endl;
- print(1);
- }
程序输出如下:

程序执行的过程:以print(123)的执行过程为例



怎么样?递归函数是不是很神奇?
其他递归函数的例子:斐波那契数列的递归算法与非递归算法