黑马程序员技术交流社区

标题: 我的基础测试1_斐波那契数列_帮忙优化下谢谢!! [打印本页]

作者: 任黎明    时间: 2014-6-3 22:33
标题: 我的基础测试1_斐波那契数列_帮忙优化下谢谢!!
package com.itheima;
/*
* 1.求斐波那契数列第n项,n<30,斐波那契数列前10项为1,1,2,3,5,8,13,21,34,55
* */
import java.util.*;
public class Test1
{
        public static void main(String[] args)
        {
                fibonacciPrint();
        }
        //定义一个方法,按提示从控制台输入项数n的值,随后打印出斐波那契数列的值
        public static void fibonacciPrint()
        {
                Scanner in=new Scanner(System.in);
                sop("输入项数:");
                int n=in.nextInt();
                sop("斐波那契数列第"+n+"项为:"+fibonacci(n));
                in.close();
        }
        //定义一个函数用于获取斐波那契数列第n项,n<30
        public static int fibonacci(int n)
        {
                                int[] arr=new int[30];
                                arr[0]=arr[1]=1;
                                for(int x=2;x<30;x++)
                                {
                                        arr[x]=arr[x-1]+arr[x-2];
                                }
                                return arr[n-1];
        }
        //定义一个简化输出方法
        public static void sop(Object obj)
        {
                System.out.print(obj);
        }
}



作者: 提菩--空    时间: 2014-6-4 10:43
没什么可简化的吧
作者: 我叫MT    时间: 2014-6-4 16:07
用递归来做也可以,更简化

  1. public class RabbitDemo {
  2.         public static void main(String[] args) {

  3.                 circulation(30);
  4.         }

  5.         public static void circulation(int n){
  6.                 for(int x=1;x<n;x++){
  7.                         System.out.println(fib(x));
  8.                 }
  9.         }

  10.         public static int fib(int n){
  11.                 if(n==1 || n==2){
  12.                         return 1;
  13.                 }else {
  14.                         return fib(n-1)+fib(n-2);
  15.                 }
  16.         }
  17. }
复制代码

作者: 青岛_黑马    时间: 2015-3-31 22:24
没什么可简化的
作者: 千玉屑    时间: 2015-4-3 09:19
没什么可简化的吧
作者: 李永佳    时间: 2015-5-10 16:27
我发现这段代码有点问题,如果控制台输入N不是1-30会报异常,而且不能连续输入n,
作者: 逍遥最好    时间: 2015-7-13 17:49
李永佳 发表于 2015-5-10 16:27
我发现这段代码有点问题,如果控制台输入N不是1-30会报异常,而且不能连续输入n, ...

那怎么解决呢?
作者: 清风惜月    时间: 2015-7-16 00:19
我们学递归的时候做过这道题,是一道兔子题,最后生了一个家族兔子.
作者: 琼琼~    时间: 2015-7-16 23:06
有用,谢谢
作者: 小刘123    时间: 2015-10-14 11:14
个人认为输出的简化似乎没必要   有点过




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2