vincentlin
0
Q:

java fibonacci series code

public class Fibonacci {

    public static void main(String[] args) {

        int n = 10, t1 = 0, t2 = 1;
        System.out.print("First " + n + " terms: ");

        for (int i = 1; i <= n; ++i)
        {
            System.out.print(t1 + " + ");

            int sum = t1 + t2;
            t1 = t2;
            t2 = sum;
        }
    }
}
0
/*
Author: Jeffrey Huang
This finds the fibonacci number using a term provided by a user
A recursive method is used.

b)
9 calls are made to the fibonacci sequence in order to compute the 5th term.

*/
import java.io.*;
public class Fibonacci_JeffreyHuang
{
    //static int counter=0;

    public static long Fibonacci (long n)
    {
        //count++;
        if (n == 1 || n == 2)
        {
            return 1;
        }
        else if (n <= 0)
        {
            System.out.println ("Error: There is no term less than 1");
            return 0;
        }
        else
        {
            return (Fibonacci (n - 1) + Fibonacci (n - 2));
        }
    }


    public static void main (String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
        String sentinel = "yes";
        long fib_term = 0;
        boolean invalid;

        while (sentinel.equalsIgnoreCase ("yes") || sentinel.equalsIgnoreCase ("y"))
        {
            //input
            System.out.println ("Which fibonacci term would you like to find?");
            invalid = true;
            while (invalid == true)
            {
                invalid = false;
                try
                {
                    fib_term = Integer.parseInt (br.readLine ());
                    /*
                    while (fib_term<=0)
                    {
                        System.out.println ("Invalid input. Please try again.");
                        System.out.println ();
                        fib_term = Integer.parseInt (br.readLine ());
                    }
                    */
                }
                catch (Exception e)  //in case the string is not a number
                {
                    System.out.println ("Invalid input. Please try again.");
                    System.out.println ();
                    invalid = true;
                }
            }

            //output
            System.out.println ();
            if (fib_term <= 0)
            {
                Fibonacci (fib_term);
            }
            
            else
            {
                System.out.println ("Term " + fib_term + " of the fibonacci sequence is " + Fibonacci (fib_term));
            }
            //System.out.println(counter);

            //rerun program
            System.out.println ();
            System.out.println ("Would you like to run the program again? (y/n)");
            System.out.println ();
            sentinel = br.readLine ();
            System.out.println ();

            while (!(sentinel.equalsIgnoreCase ("yes") || sentinel.equalsIgnoreCase ("y")
                        || sentinel.equalsIgnoreCase ("n") || sentinel.equalsIgnoreCase ("no")))
            {
                //System.out.println();
                System.out.println ("Invalid input. Please try again.");
                System.out.println ("Would you like to run the program again? (y/n)");
                sentinel = br.readLine ();
                System.out.println ();
            }
        }

        System.out.println ("Program terminated by user.");

    }
}
0
class fibonacci 
{ 
      
    static int fib(int n) 
    { 
    int F[][] = new int[][]{{1,1},{1,0}}; 
    if (n == 0) 
        return 0; 
    power(F, n-1); 
      
       return F[0][0]; 
    } 
       
     /* Helper function that multiplies 2 matrices F and M of size 2*2, and 
     puts the multiplication result back to F[][] */
    static void multiply(int F[][], int M[][]) 
    { 
    int x =  F[0][0]*M[0][0] + F[0][1]*M[1][0]; 
    int y =  F[0][0]*M[0][1] + F[0][1]*M[1][1]; 
    int z =  F[1][0]*M[0][0] + F[1][1]*M[1][0]; 
    int w =  F[1][0]*M[0][1] + F[1][1]*M[1][1]; 
       
    F[0][0] = x; 
    F[0][1] = y; 
    F[1][0] = z; 
    F[1][1] = w; 
    } 
  
    /* Helper function that calculates F[][] raise to the power n and puts the 
    result in F[][] 
    Note that this function is designed only for fib() and won't work as general 
    power function */
    static void power(int F[][], int n) 
    { 
    int i; 
    int M[][] = new int[][]{{1,1},{1,0}}; 
      
    // n - 1 times multiply the matrix to {{1,0},{0,1}} 
    for (i = 2; i <= n; i++) 
        multiply(F, M); 
    } 
       
    /* Driver program to test above function */
    public static void main (String args[]) 
    { 
    int n = 9; 
    System.out.println(fib(n)); 
    } 
} 
/* This code is contributed by Rajat Mishra */
0

New to Communities?

Join the community