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;
}