用迭代法求斐波那契数列的第n项;
import java.util.Scanner;
class Test1 {
public static int fib(int n) {
//定义三个变量,并赋初值
int f1 = 1;
int f2 = 1;
int f3 = 1;
for (int i = 3; i <= n; i++) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
public static void main(String[] args) {
System.out.println("请输入第n个数:");
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int ret=fib(n);
System.out.println("ret="+ret);
}
}
时间复杂度为o(n),j减少了时间复杂度;用递归实现的时间复杂度为o(2^n)。