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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 人在旅途~东营 中级黑马   /  2015-5-31 22:56  /  255 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
*                 分析:      n == 1,  result 1
*                                 n == 2,  result 1
*                                 n == 3,  result 1+1  fun(n-1) + fun(n-2)
*                                 n == 4,  result 2+1  fun(n-1) + fun(n-2)
*                 这种情况肯定要考虑递归

代码实现:
  1. public class Test4 {
  2.         public static void main(String[] args) {
  3.                 // 定义递归方法并用int类型的result接收,因为n<30,以n=15为例.
  4.                 int result = fun(15);
  5.                 System.out.println(result);
  6.                
  7.         }

  8.         private static int fun(int n) {
  9.                 // 判断,当n=1或者n=2时,返回结果为1
  10.                 if (n == 1 || n == 2) {
  11.                         return 1;
  12.                 } else {
  13.                         // 当n>2时,result = fun(n-1) + fun(n-2);返回结果
  14.                         return fun(n - 1) + fun(n - 2);

  15.                 }
  16.         }

  17. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马