第七十八题
方法一 递归
class Solution {
public:
    int cutRope(int number) {
        // 直接递归。
        // 5 = 1+4=2+3 所以,5的结果 应该是1和4最大的结果相乘 或者2和3最z的结果相乘
        
        // 再比如20 =1+19 = 2+18.... 所以结果就是1和19的最大值相乘,或者2和18的最大值相乘,或者3和17最大值相乘。。。
        if(number == 2)
            return 1;
        if(number==3)
            return 2;
        vector<int>dp(number+1);
        dp[1]=1;
        dp[2]=2;
        dp[3]=3;
        for(int i=4;i<=number;i++)
        {
            int temp=0;
            for(int j=1;j<=i/2;j++)
            {
                temp=max(temp,dp[j]*dp[i-j]);
            }
            dp[i]=temp;
        }
        for(int i=0;i<=number;i++)
            cout<<dp[i]<<" ";
        return dp[number];
    }
};