zz698 @ 2024-10-26 10:43:14
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(fac(n));
}
public static int fac(int n){
int[] arrays = new int[n+1];
Arrays.fill(arrays, -1);
arrays[0] = 1;
arrays[1] = 1;
return fub(n, arrays);
}
public static int fub(int n,int[] arrays){
if (arrays[n] != -1) {
return arrays[n];
}
else{
int i=fub(n-1, arrays);
int j=fub(n-2, arrays);
arrays[n] = i+j;
return arrays[n];
}
}
}
by Linux0763 @ 2024-11-02 20:17:26
可能是因为后面的斐波那契数较大(非常大!!!),超出了所使用数据类型(int)的表示范围(溢出),需要用大数加减法来解决。当然,我也不太会,因为我遇到了相同的问题。
by Jason514 @ 2024-11-08 21:16:45
先做 P1601。