常见的递归问题总结

不管是工作中还是面试中经常会遇到有关递归的问题,这里我总结了几种常见的递归问题。

问题一

一列数的规则如下: 1、12、123、1234、12345、123456……,求第n个数的递归算法(n<=9)。

思路:

  1. 这里我只需要将这个数字当成字符串来操作,这样就不涉及到数字的计算。
  2. 字符串最后一位是输入的n的值,所以需要递归的只是前面的部分。

代码:

结果:

问题二

使用递归实现阶乘效果。例输入2 结果应该是:1*2=2,输入3 结果应该是:1*2*3=6,输入n求阶乘。

代码

使用递归来实现

这个题也可以通过使用循环来实现

结果

问题三

一列数的规则如下 : 1 、 1 、 2 、 3 、 5 、 8 、 13 、 21 、 34…… 求第 30 位数是多少?

思路

  1. 通过上面的数据观察其实是前2项之和等于第三项,也就是斐波那契数列。

代码

结果

发布者:柚子,转转请注明出处:https://ityouzi.com/archives/common-recursive-problem-summary.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注