2
긴 데이터 형식을 사용하여 메서드를 작동시키지 만, BigInteger 재귀 메서드를 호출 할 때 println 때 "null"이라고 표시됩니다. 나는 값이 긴 데이터 유형에 대한 너무 큰 과거 N = 94, 갈 때까지BigInteger 및 memoization을 사용하여 재귀 메서드를 호출 할 때 NULL 가져 오기
public static long fib_rec(int n){
long result=1;
if(n<=2){
return result;
}
else{
if(fval[n]!=0){
result=fval[n];
}
else{
result = fib_rec(n-1) + fib_rec(n-2);
fval[n] = result;
}
return result;
}
}
다시 말하지만, 그 방법은 완벽하게 작동합니다 : 다음은 나를 위해 작동 나의 긴 재귀 적 방법이다. 여기 내 BigInteger를 시도, 전체 프로그램 :
public class BigInt {
static BigInteger[] fval;
public static void main(String[] args) {
int index;
Scanner input = new Scanner(System.in);
index = input.nextInt();
fval = new BigInteger[index + 1];
System.out.println(fib_rec(index));
}
public static BigInteger fib_rec(int index){
BigInteger result = BigInteger.ONE;
if(index <= 2){
return result;
}
else{
if(fval[index] != BigInteger.ZERO){
result=fval[index];
}
else{
result = fib_rec(index-1).add(fib_rec(index-2));
fval[index] = result;
}
return result;
}
}
}
이 null을 반환하고 내가 왜 아무 생각이 ...