public static void main(String[] args) { for(int i:new Fibo(20)) System.out.println(i); }写出它的类
时间: 2024-05-11 20:17:55 浏览: 70
以下是实现该程序的类 Fibo:
```
public class Fibo implements Iterable<Integer> {
private int count;
public Fibo(int count) {
this.count = count;
}
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
private int n1 = 1, n2 = 1, index = 0;
@Override
public boolean hasNext() {
return index < count;
}
@Override
public Integer next() {
index++;
if (index == 1 || index == 2) {
return 1;
} else {
int sum = n1 + n2;
n1 = n2;
n2 = sum;
return sum;
}
}
};
}
}
```
该类实现了 Java 中的 Iterable 接口,使得它可以被用于 foreach 循环中。在类中,我们使用了匿名内部类实现了一个迭代器 Iterator,该迭代器可以生成斐波那契数列中的前 count 个数。在迭代器中,我们使用了两个变量 n1 和 n2 来存储斐波那契数列中的前两个数,index 变量用于记录当前生成的数的个数。在每次迭代中,我们计算出当前的斐波那契数值 sum,然后将 n1 和 n2 分别更新为当前值和上一个值,以便在下一次迭代中继续生成数列。
阅读全文