本文共 625 字,大约阅读时间需要 2 分钟。
1、递归
时间复杂度 O(2^n) 空间复杂度 O(n)int Fibon1(int n){ if (n == 1 || n == 2) { return 1; } else { return Fibon1(n - 1) + Fibon1(n - 2); }}
2、非递归
时间复杂度:O(n) 空间复杂度:O(1)int Fabio(int n) //循环{ int i; int f1 = 1; int f2 = 1; int f3 = 1; for(i = 2;i
3、当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
public static void main(String args[]){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int F[] = new int[n+2]; F[1]=1; F[2]=1; if(n>2){ for(int i=3;i<=n;i++){ F[i]=(F[i-1]+F[i-2])%10007;//用来保存余数 } } System.out.println(F[n]); }
这个题如果n=789461123164533243,就是错误的,用BigInteger我试了试,还是不行,求大佬解答。
转载地址:http://xgrwi.baihongyu.com/