数列:
1 1 2 3 5 8 13 21 34 55 …
规律:
前两项相加的和等于第三项。
记录3中写法
1、循环
public static void main(String[] args) {
int a = 0;
int b = 1;
int c = 1;
int i = 0;
System.out.print(a+"\t"+b+"\t");
while (true){
i++;
c = a + b;
// 交换逻辑
a = b;
b = c;
System.out.print(c+"\t");
if (i==20)break;
}
}
2、递归
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.print(fib(i)+"\t");
}
}
public static int fib(int num){
if(num == 1 || num == 2){
//如果是第一个数或第二个数
return 1;
}else {
//倒数第二个数加上倒数第一个数作为当前数的值,返回当前数
return fib(num-2)+fib(num-1);
}
}
3、流
public static void main(String[] args) {
Stream.iterate(new int[]{0,1},a->new int[]{a[1],a[0]+a[1]})
.limit(20)
.map(a->a[0]+"\t")
.forEach(System.out::print);
}