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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© darkpiece 中级黑马   /  2014-1-20 12:28  /  1367 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Deom1
{
        public static void main(String[] args)
        {
                for (int i=1; i<30;i++ )
                {
                        System.out.println("f("+i+")="+fibo(i));
                }
               
               
        }
        static int fibo(int n)
        {
                if(n==1)
                {
                return 1;
                }
                else
                {
                return fibo(n-1)+fibo(n-2);
                }
       
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

5 个回复

倒序浏览
  1. public class F {
  2.         public static void main(String[] args)
  3.         {
  4.                 for (int i=1; i<30;i++ )
  5.                 {
  6.                         System.out.println("f("+i+")="+fibo(i));
  7.                 }
  8.                
  9.                
  10.         }
  11.         static int fibo(int n)
  12.         {
  13.                 if(n==1 || n == 0)
  14.                 {
  15.                 return 1;
  16.                 }
  17.                 else
  18.                 {
  19.                 return fibo(n-1)+fibo(n-2);
  20.                 }
  21.         
  22.         }
  23. }
复制代码


这样符合你的结果吗?

你那样 循环到 i = 2,fibo(n-2) 就出不来了
回复 使用道具 举报
这样子递归会形成死循环,永远出不来,最后结果肯定是内存溢出,不知道楼主想要完成什么样的结果
回复 使用道具 举报
原来如此,我晕,我明白了!万分感谢
回复 使用道具 举报
二楼的,其实不是很准确,因为斐波那契数列是1、1、2、3、5、8、13、21
当n=2时,斐波那契数列对应的是1。如果按照二楼的算法,当n=2时,fibo(2)=2,与数列不符。
修改后的代码如下:
public class F {
        public static void main(String[] args)
        {
                for (int i=1; i<30;i++ )
                {
                        System.out.println("f("+i+")="+fibo(i));
                }
               
               
        }
        static int fibo(int n)
        {
                if(n==1 || n == 2)
                {
                return 1;
                }
                else
                {
                return fibo(n-1)+fibo(n-2);
                }
        
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄晓鑫 + 1

查看全部评分

回复 使用道具 举报
找了半天没看到提问结束在哪
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马