publicstaticintcut(int[] p,int value){if(value ==0){return0;}else{int result =0;//防止越界,如果钢条长度超过了数组的长度就让不分的价值为-1if(value > p.length -1){
result =-1;}else{
result = p[value];}for(int i =1; i < value; i++){
result = Math.max(result,cut(p, value - i)+cut(p, i));}return result;}}
publicstaticintcut1(int[] p,int value){if(value ==0){return0;}else{int result =0;if(value > p.length -1){
result =-1;}else{
result = p[value];}for(int i =1; i < value; i++){
result = Math.max(result,cut1(p, value - i)+ p[i]);if(i > p.length -1){break;}}return result;}}
privatestaticint[] p ={0,1,5,8,9,10,17,17,20,24,30};publicstaticvoidmain(String[] args){
System.out.println(cut1(p,11));}