FileDocCategorySizeDatePackage
FibonacciImpl.javaAPI DocExample993Sat Sep 09 21:21:40 BST 2000None

FibonacciImpl.java

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.math.BigInteger;


public class FibonacciImpl extends UnicastRemoteObject implements Fibonacci {

  public FibonacciImpl() throws RemoteException {
    UnicastRemoteObject.exportObject(this);
  //  setLog(System.out);
  }
    
  public BigInteger getFibonacci(int n) throws RemoteException {
    
    return this.getFibonacci(new BigInteger(Long.toString(n)));  
    
  }
  
  public BigInteger getFibonacci(BigInteger n) throws RemoteException {  
    
    System.out.println("Calculating the " + n + "th Fibonacci number");
    BigInteger zero = new BigInteger("0");
    BigInteger one  = new BigInteger("1");
    
    if (n.equals(zero)) return zero;
    if (n.equals(one)) return one; 

    BigInteger i  = one;
    BigInteger a  = zero;
    BigInteger b  = one;

    while (i.compareTo(n) == -1) {
      BigInteger temp = b;
      b = b.add(a);
      a = temp; 
      i = i.add(one);
    }

    return b;

  }

}