私はC ++でこの関数を最大化しようとしています:
これを関数に入れました:
int F(int n , int T ){
if( T >= 0 && n == 0){
return 0;
}else if( T < 0){
return INT_MIN;
} else if(T >= 0 && n > 0){
for(int i = 0 ; i <= m[n-1] ; i++){
ganancia = max(i * v[n-1] + F(n-1,T-i*t[n-1]),ganancia );
}
}
}
しかし、 n 3 , T 8, t {1, 2, 2}, v {12, 15, 30} を実行し、最後に m{3, 3, 2} を実行すると、プログラムは 99 を返す必要があるときに 2 を返します。 .