public class Fibonacci extends Thread { int n; int result; public Fibonacci(int n) { this.n = n; } public void run() { if ((n == 0)||(n == 1 )) result = 1; else { Fibonacci f1 = new Fibonacci(n-1); Fibonacci f2 = new Fibonacci(n-2); f1.start(); f2.start(); try { f1.join(); f2.join(); } catch (InterruptedException e){}; result = f1.getResult() + f2.getResult(); } } public int getResult(){ return result; } public static void main(String[] args) { Fibonacci f1 = new Fibonacci(Integer.parseInt(args[0])); f1.start(); try { f1.join(); } catch (InterruptedException e){}; System.out.println("Answer is " + f1.getResult()); } }