A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 未名以律 中级黑马   /  2014-8-12 18:41  /  1295 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 未名以律 于 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=NTE3MzF8YTkxOTBkOTFiN2ZiZTM4YTVjZTg0Yjc4YTdjNWJiMzZ8MTczMTA1ODc4Mw%3D%3D&request=yes&_f=.png


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

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

36.png

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 淡定

查看全部评分

3 个回复

倒序浏览
  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)

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼上解释很详细的。
回复 使用道具 举报
paozhuanyinyu 发表于 2014-8-12 19:05
getAge(7)
=getAge(6)+1
=getAge(5)+2

嗯,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马