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;
}
{
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;
}
相关文章推荐
- java 工厂方法模式简单实例
- Myeclipse创建单元测试
- ActiveMQ学习 第一篇 入门篇
- spring4之依赖注入的三种方式
- 306. Additive Number | Java最短代码实现
- JDBC入门
- java中volatile关键字的含义
- 227. Basic Calculator II | Java最短代码实现
- JAVA反射API以及常见用法
- java枚举使用详解
- Struts2访问Servlet API的三种方式
- 解决Spring Boot OTS parsing error: Failed to convert WOFF 2.0
- 一篇很有用的文章:java就业指导
- Java学习总结
- WebService基本入门(基于jdk自带的jax-ws)
- java中String类型变量的赋值问题介绍
- Spring中@Async用法总结
- java使用嵌套三目表达式进行嵌套HashMap赋值
- CoordinatorLayou eclipse中使用出现的问题
- Java数据类型和MySql数据类型对应表