黑马程序员技术交流社区

标题: 递归 [打印本页]

作者: 未名以律    时间: 2014-8-12 18:41
标题: 递归
本帖最后由 未名以律 于 2014-8-13 07:56 编辑
  1. public class c {
  2. private static int getAge(int count){
  3. if(count==1){
  4. return 5;
  5. }else{
  6. return getAge(count-1) + 1;
  7. }
  8. }
  9. public static void main(String[] args) {
  10. System.out.println(getAge(7));
  11. }
  12. }
复制代码



http://bbs.itheima.com/forum.php?mod=attachment&aid=NTE3MzF8Nzg0MDkxOThkMWZiNjFjYzk2OWM5MjQzMDRjMWUzZWJ8MTczMTA2MDQ5MQ%3D%3D&request=yes&_f=.png


这个运行的答案是怎么算出来的?求解

36.png (624 Bytes, 下载次数: 51)

36.png

作者: paozhuanyinyu    时间: 2014-8-12 19:05
  getAge(7)
=getAge(6)+1
=getAge(5)+2
=getAge(4)+3
=getAge(3)+4
=getAge(2)+5
=getAge(1)+6
=5+6=11
最后一步=getAge(1)没有加1,所以是5+6(7-1,不包括1,总共6个1)
作者: 付士长    时间: 2014-8-12 19:15
楼上解释很详细的。
作者: 未名以律    时间: 2014-8-13 07:56
paozhuanyinyu 发表于 2014-8-12 19:05
getAge(7)
=getAge(6)+1
=getAge(5)+2

嗯,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2