您的位置:首页 > 编程语言 > Java开发

java-斐波那契数列

2016-03-23 01:00 543 查看
public static void main(String args[])

{

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个正整数:");

int n = sc.nextInt();

System.out.println("total为:"+f(n));

System.out.println("total为:"+getFibonacci(n));

System.out.println("total为:"+getF(n).toString());

}

/** 优雅版**/

public static int f(int n){return n>2?f(n-1)+f(n-2):1;}

/** 普通版(93以内) **/

public static long getFibonacci(int n)

{

long pre1 = 1;

long pre2 = 1;

long cur = 0;

if(n<=0)

{

System.out.println("请输入一个正整数:");

}

if(1==n||2==n)

return 1;

for(int i = 3;i <= n;i++)

{

cur = pre1+pre2;

pre1 = pre2;

pre2 = cur;

}

return cur;

}

/** 升级版 **/

public static BigInteger getF(int n)

{

BigInteger pre1 = new BigInteger("1");

BigInteger pre2 = new BigInteger("1");

BigInteger cur = new BigInteger("0");

if(n<=0)

{

System.out.println("请输入一个正整数:");

}

if(1==n||2==n)

{

return pre1;

}

for(int i = 3;i <= n;i++)

{

cur = pre1.add(pre2);

pre1 = pre2;

pre2 = cur;

}

return cur;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: