剪绳子-推公式,DP,贪婪
这道题答案是B。可以推出来公式:
对于第n次折叠,段数为:2^n + 1
剪绳子
DP:
class Solution { public: int cutRope(int number) { if(number<2) return 0; else if(number==2) return 1; else if(number==3) return 2; int f[number+1]; //把长度为i的绳子剪成若干段后各段长度乘积的最大值 memset(f, 0, sizeof f); f[0] = 0; f[1] = 1; f[2] = 2; f[3] = 3; for(int i=4; i<=number; i++){ for(int j=1; j<=i/2; j++){ f[i] = max(f[i], f[j]*f[i-j]); } } return f[number]; } };