代码第一版 :
#includeusing namespace std;int max(int a,int b){ if(a>=b)return a; else return b;}int cut_rod(int *p,int n){ int q=NULL; if(n==0)return 0; else for(int i=0;i >n; int r=cut_rod(p,n); cout< <
这版代码 由于p[]的原因,仅仅能对1~10求解。
所以对他进行小小的改进
第二版
#include这些是动态编程——简单的分割问题的解决方案钢棒using namespace std;#define NIL (-0x7fffffff-1)int max(int a,int b){ if(a>=b) return a; else return b;}int cut_rod(int *p,int n){ if(n==0) return 0; int q=NIL; if(n<=10){ for(int i=0;i 10){ int b=n/10; n=n-b*10; if(n==0) q=0; for(int i=0;i >n; int r=cut_rod(p,n); cout< <