斐波那契数列
非递归:
重温一下算法入门题,把Java赋值套娃了一遍,觉得好玩就发出来了
import java.util.Scanner;
public class Main {
static final int mod = 10007;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt() - 2, F1, F2, F3;
F1 = F2 = F3 = 1;
while (n-- > 0) F2 = F3 = (F1 + (F1 = F2)) % mod;
System.out.println(F3);
}
}
递归:
不仅是内存栈的额外开销
单是时间复杂度被拔到了 2n 就表明该法不可取
import java.util.Scanner;
public class Main {
static final int mod = 10007;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sail(sc.nextInt()));
}
static int sail(int n) {
if (n <= 2) return 1;
return (sail(n - 1) + sail(n - 2)) % mod;
}
}