Реализация режущего стержня в C++?
#include <iostream> using namespace std; int main() { int n; n=8; int dp[n+2][n+2]; for(int i=0;i<=n+1;i++) for(int j=0;j<=n+1;j++) dp[i][j]=0; int b[]={0,1, 5, 8, 9, 10, 17, 17, 20}; for(int i=1;i<=n+1;i++ ) for(int j=1;j<=n+1;j++) { if(j>=i) dp[i][j]=max(dp[i-1][j],b[i]+dp[i][j-i]); else dp[i][j]=dp[i-1][j]; } cout<<dp[n+1][n+1]; return 0; }
Что я уже пробовал:
Я хотел реализовать задачу режущего стержня с помощью 2-D массива.Но результат, заданный фрагментом кода, отличается от реального результата.
Ребята пожалуйста помогите мне :)
Patrice T
"отличается от реального выхода" не информативно.
Покажите реальный выход и фактический выход, объясните проблему.
Richard MacCutchan
Ну, кто знает, что этот код должен делать или что происходит на самом деле.
[no name]
Используйте отладчик, чтобы выяснить, где ваш ожидаемый результат (что бы это ни было) отличается от реального результата (что бы это ни было).
KarstenK
Сначала этот код не будет компилироваться. Используйте лучшие имена переменных, фигурные скобки и константы для "чистого кода". Может быть, еще немного cout поможет...