package foo; import java.util.Iterator; /** * the fibonacci series implemented as an Iterable. */ public final class Fibonacci implements Iterable{ /** the next and previous members of the series. */ private int a = 1, b = 1; @Override public Iterator iterator() { return new Iterator () { /** the series is infinite. */ public boolean hasNext() { return true; } public Integer next() { int tmp = a; a += b; b = tmp; return a; } public void remove() { throw new UnsupportedOperationException(); } }; } /** * the nth element of the given series. * @throws NoSuchElementException if there are less than n elements in the * given Iterable's {@link Iterable#iterator iterator}. */ public static T nth(int n, Iterable iterable) { Iterator it = iterable.iterator(); while (--n > 0) { it.next(); } return it.next(); } public static void main(String[] args) { System.out.print(nth(10, new Fibonacci())); } }
Subscribe to:
Post Comments
(
Atom
)
0 comments:
Post a Comment