一般来说,能够用递归解决的问题应该满足以下三个条件: 需要解决的问题可以化为一个或多个子问题来求解,而这些子问题的求解方法与原来的问题完全相同,只是在数量规模上不同,并且问题规模变小了; 递归调用的次数必须是有限的; 必须有结束递归的条件(边界条件)来终止递归
用递归的思想来解决问题,首先要找到递归的规律,也就是n规模的问题与n-1的规模的问题。以4!为例,总结其规律:
表达式 改写后表达式
4!=4*3*2*1 4!=4*3!
3!=3*2*1 3!=3*2!
2!=2*1 2!=2*1!
1! =1*1 1! =1*0!
0!=1 0!=1