为了账号安全,请及时绑定邮箱和手机立即绑定

递归新手问题

递归新手问题

扬帆大鱼 2018-08-02 08:06:21
表达能力强的给我讲下递归啊 是在看不懂他怎么执行的?跳来跳去static string Test(int i){if (i == 10){return i.ToString();//①}else{Test(++i);return i.ToString();//②}}Console.WriteLine(Test(1)); 结果居然是2,1.为什么第①出 return不跳出?2.当满足条件后执行else的 ② 为什么他也不出去,++居然成了--了 ,还有他为什么减到2才执行完?条件在哪里
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

递归算法解决问题的特点:

 

  (1) 递归就是在过程或函数里调用自身。

 

  (2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

 

  (3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。

 

  (4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 590 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信