public static void main(String[] args) {
   Fib f = new Fib();
   while (true) {
     int i = f.next();
     System.out.print(i + "\t");
     if (i > 2000) {
       break;
     }
   }
 }
  public static BigInteger findLowestValAt1(BigInteger target) {
    for (BigInteger i = BigInteger.ONE; i.compareTo(target) < 0; i = i.add(BigInteger.ONE)) {
      if (Fib.contains(i, target)) {
        return i;
      }
    }

    return target;
  }
  public static int findLowestValAt1(int target) {
    for (int i = 1; i < target; i++) {
      if (Fib.contains(i, target)) {
        return i;
      }
    }

    return target;
  }
Exemple #4
0
  public static void main(String[] args) {
    try {
      int procs;
      int num;
      try {
        procs = Integer.parseInt(args[0]);
        num = Integer.parseInt(args[1]);
        if (args.length > 2) sequentialThreshold = Integer.parseInt(args[2]);
      } catch (Exception e) {
        System.out.println("Usage: java Fib <threads> <number> [<sequntialThreshold>]");
        return;
      }

      FJTaskRunnerGroup g = new FJTaskRunnerGroup(procs);
      Fib f = new Fib(num);
      g.invoke(f);
      g.stats();

      long result = f.getAnswer();
      System.out.println("Fib: Size: " + num + " Answer: " + result);
    } catch (InterruptedException ex) {
    }
  }
  public static String sequence(int target) {
    if (target == 0) return "0";

    int valat1 = Fib.findLowestValAt1(target);
    String ret = "0 " + valat1 + " ";
    if (target == valat1) return ret.trim();

    int valat0 = 0;
    int current = valat0 + valat1;
    do {
      ret += current + " ";
      valat0 = valat1;
      valat1 = current;
      current = valat0 + valat1;
    } while (current <= target);

    return ret.trim();
  }
  public static String sequence(BigInteger target) {
    if (target.compareTo(new BigInteger("2147483647")) < 0) return sequence(target.intValue());

    // this actually does need to be handled as a big integer

    BigInteger valat1 = Fib.findLowestValAt1(target);
    String ret = "0 " + valat1 + " ";
    if (target.equals(valat1)) return ret.trim();

    BigInteger valat0 = BigInteger.ZERO;
    BigInteger current = valat0.add(valat1);
    do {
      ret += current + " ";
      valat0 = valat1;
      valat1 = current;
      current = valat0.add(valat1);
    } while (current.compareTo(target) <= 0);

    return ret.trim();
  }
Exemple #7
0
 public static void main(String[] args) {
   System.out.printf("result: 0x%08x\n", Fib.fib(5));
   System.out.printf("result: 0x%08x\n", Fib.fib(6));
 }