递归函数是会调用自己的函数。
下面我们用递归函数来实现输出正整数N各个位上的数字。
先看代码,后面我们来展示执行的过程:
#include <iostream>
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)的执行过程为例
怎么样?递归函数是不是很神奇?
其他递归函数的例子:斐波那契数列的递归算法与非递归算法