java fibonacci sequence without recursion
//Using Recursionpublic class FibonacciCalc{ public static int fibonacciRecursion(int n){ if(n == 0){ return 0; } if(n == 1 || n == 2){ return 1; } return fibonacciRecursion(n-2) + fibonacciRecursion(n-1); } public static void main(String args[]) { int maxNumber = 10; System.out.print("Fibonacci Series of "+maxNumber+" numbers: "); for(int i = 0; i < maxNumber; i++){ System.out.print(fibonacciRecursion(i) +" "); } }}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* Java Program to print Fibonacci series without using recursion.
* input : 10
* output : 0 1 1 2 3 5 8 13 21 34 55
*
* @author WINDOWS 8
*/
public class FibonacciSeriesWithoutRecursion {
public static void main(String args[]) {
// printing first 10 numbers of Fibonacci series
fibonacci(10);
}
public static void fibonacci(int number){
for(int i=0; i <= number; i++){
System.out.print(getFibonacci(i) + " ");
}
}
/**
* This function return nth Fibonacci number in Java
* @param n
* @return nth number in Fibonacci series
*/
public static int getFibonacci(int n){
if (n == 0) {
return 0;
}
if (n == 1){
return 1;
}
int first = 0;
int second = 1;
int nth = 1;
for (int i = 2; i <= n; i++) {
nth = first + second;
first = second;
second = nth;
}
return nth;
}
}
Output : 0 1 1 2 3 5 8 13 21 34 55
/*
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.");
}
}