(11)递归求阶乘

个人主要将递归用于未知层数的循环,也就是我不知道实现这个功能到底要多少个循环。

比如说遍历磁盘下的所有文件,我不知道这个文件夹里面有多少子文件夹以及孙文件夹等等,这时候就可以用递归去做。

第一次用递归是在做一个扫描整个磁盘的某种类型文件的VB程序,晚上花了两个小时才把那个遍历写好,那时候对递归有了比较深刻的认识。

有了经验后,然后我将递归应用到了一个自己的加密程序中,那个程序是在某个文件夹下创建许多嵌套的文件夹达到藏隐私文件的目的。原先用的是10个for循环嵌套,最多允许嵌套10层文件夹(如果允许20层我要嵌套20个for循环,以此类推),代码相当庞大,改成递归后,实现了无限嵌套,而且只用了一个循环。

所以,递归是个好东西!不过,递归很伤内存。

递归即方法调用方法本身。下面是个求阶乘的例子。

						/**
						* 递归求阶乘
						* @param num 求num的阶乘
						* @return
						*/
						public long jc(int num){
							if(num==0||num==1) return 1;
							else return num*jc(num-1);
						}