Ejemplo n.º 1
0
 static ArrayList<Integer> continuedFraction(int num) {
   ArrayList<Integer> continuedFraction = new ArrayList<Integer>();
   HashSet<Fraction> previousStates = new HashSet<Fraction>();
   int maxRoot = (int) (Math.sqrt(num));
   Fraction fraction = new Fraction(1, 0, 1, maxRoot * (-1), num);
   while (true) {
     previousStates.add(fraction);
     continuedFraction.add(fraction.nextInt());
     if (previousStates.contains(fraction)) break;
   }
   return continuedFraction;
 }