fork download
  1. import java.util.Scanner;
  2.  
  3. /**
  4.  * Java program to calculate and print Fibonacci number using both recursion and Iteration.
  5.  * Fibonacci number is sum of previous two Fibonacci numbers fn= fn-1+ fn-2
  6.  * first 10 Fibonacci numbers are 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
  7.  * @author
  8.  */
  9. class FibonacciCalculator {
  10.  
  11. public static void main(String args[]) {
  12.  
  13. //input to print Fibonacci series upto how many numbers
  14. System.out.println("Enter number upto which Fibonacci series to print: ");
  15. int number = new Scanner(System.in).nextInt();
  16.  
  17. System.out.println("Fibonacci series upto " + number +" numbers : ");
  18. //printing Fibonacci series upto number
  19. for(int i=1; i<=number; i++){
  20. System.out.print(fibonacci2(i) +" ");
  21. }
  22.  
  23.  
  24. }
  25.  
  26. /*
  27.   * Java program for Fibonacci number using recursion.
  28.   * This program uses tail recursion to calculate Fibonacci number for a given number
  29.   * @return Fibonacci number
  30.   */
  31. public static int fibonacci(int number){
  32. if(number == 1 || number == 2){
  33. return 1;
  34. }
  35.  
  36. return fibonacci(number-1) + fibonacci(number -2); //tail recursion
  37. }
  38.  
  39. /*
  40.   * Java program to calculate Fibonacci number using loop or Iteration.
  41.   * @return Fibonacci number
  42.   */
  43. public static int fibonacci2(int number){
  44. if(number == 1 || number == 2){
  45. return 1;
  46. }
  47. int fibo1=1, fibo2=1, fibonacci=1;
  48. for(int i= 3; i<= number; i++){
  49. fibonacci = fibo1 + fibo2; //Fibonacci number is sum of previous two Fibonacci number
  50. fibo1 = fibo2;
  51. fibo2 = fibonacci;
  52.  
  53. }
  54. return fibonacci; //Fibonacci number
  55.  
  56. }
  57.  
  58. }
Success #stdin #stdout 0.23s 60892KB
stdin
12
stdout
Enter number upto which Fibonacci series to print: 
Fibonacci series upto 12 numbers : 
1 1 2 3 5 8 13 21 34 55 89 144