关键就在于,分还是不分是个问题。
int max(int i,int j){
if(i>j) return i;
return j;
}
int integerBreak(int n) {
int* dp=(int*)malloc(sizeof(int)*(n+4));
dp[0]=0,dp[1]=0,dp[2]=1,dp[3]=2;
for(int i=4;i<=n;i++){
int maxn=0;
for(int j=2;j<i;j++){
int t=max(j*(i-j),j*dp[i-j]);
if(t>maxn) maxn=t;
}
dp[i]=maxn;
}
return dp[n];
}
结果:
标签:return,int,整数,maxn,拆分,343,dp From: https://www.cnblogs.com/llllmz/p/18067183