だから、動的プログラミングの問題をJavaで簡単に実装しようとしています。メソッドは、アルゴリズムのカットロッド法、第 3 版 (Rivest らによる) 第 15 章 ここに私のコードがあります -
public static double cutRod(double[] p, int n){
if(n==0)return 0;
double q = -1000;
for(int i=0;i<n;i++){
q = Math.max( q, p[i]+cutRod(p,n-i));
}
return q;
}
public static void main(String[] args) throws FileNotFoundException, IOException{
double[] p = {1,5,8,9,10,17,17,20,24,30};
double val = cutRod(p,10);
System.out.println(val);
}
これを実行しようとすると、スタック オーバーフロー エラーが発生します。デバッグしようとしても (netbeans を使用しています)、最初の再帰呼び出しでしばらく停止し、スタック オーバーフロー エラーが発生します。何か案は?