黑马程序员技术交流社区
标题:
我的基础测试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
用递归来做也可以,更简化
public class RabbitDemo {
public static void main(String[] args) {
circulation(30);
}
public static void circulation(int n){
for(int x=1;x<n;x++){
System.out.println(fib(x));
}
}
public static int fib(int n){
if(n==1 || n==2){
return 1;
}else {
return fib(n-1)+fib(n-2);
}
}
}
复制代码
作者:
青岛_黑马
时间:
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