Tuesday, January 28, 2014

Three kinds implementation for Fibonacci

import java.math.BigInteger;

public class Fib {

public static void main(String[] args) throws Exception {
printFib1(10);
System.out.println();
printFib2(10);
System.out.println();
printFib3(10);
}

public static void printFib1(int n){
        int f = 0;
        int g = 1;
        for(int i = 1; i <= n; i++)
        {
        System.out.print(f + " ");
            f = f + g;
            g = f - g;
        }
}

public static void printFib2(int n){
for(int i=1;i<=n;i++){
System.out.print(fib2(i)+" ");
}
}

private static long fib2(int n){
if(n<=2)
return n-1;
else
return fib2(n-1)+fib2(n-2);
}

public static void printFib3(int n){
BigInteger[] result = getFib(n);
for(BigInteger num:result){
System.out.print(num+" ");
}
}

private static BigInteger[] getFib(int number){
BigInteger[] result = new BigInteger[0];
if(number>0){
result = new BigInteger[number];
if(number==1){
result[0] = BigInteger.valueOf(0);
}
else if(number==2){
result[0] = BigInteger.valueOf(0);
result[1] = BigInteger.valueOf(1);
}
else{
result[0] = BigInteger.valueOf(0);
result[1] = BigInteger.valueOf(1);
for(int i=2;i<number;i++){
result[i] = result[i-1].add(result[i-2]);
}
}
}
return result;
}

}

No comments:

Post a Comment