斐波那契数:1,1,2,3,5,8…;后一个数等于前两个数之和
使用递归的方法:
public class Test {
public static void main(String[] args) {
int n = 6;
int ret = fib(n);
System.out.println(ret);
}
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
}
return fib(n - 1) + fib(n - 2);
}
}
不使用递归的方法:
public class Test {
public static void main(String[] args) {
int n = 6;
int ret = fib(n);
System.out.println(ret);
}
public static int fib(int n) {
int num1 = 1;//定义第一个数为last1
int num2 = 1;//定义第二个数为last2
int cur = 0;//定义当前位置数为cur
for (int i = 3; i <= n; i++) {
cur = num1 + num2;
num1 = num2;//把last2的值赋给last1
num2 = cur;//把cur的值赋给last2
}
return cur;
}
}