码迷,mamicode.com
首页 > 其他好文 > 详细

剪绳子

时间:2020-02-13 12:43:11      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:nbsp   一个   替换   product   mes   lse   max   res   solution   

结论:选用尽量多的3,直到剩下2或者4时,用2

/*
*
*选用尽量多的3,直到剩下2或者4时,用2
*如果有三个以上的2,那么 3×3>2×2×23×3>2×2×2,所以替换成3乘积更大;
*所以最多能拆成两个2,即4
*/
class Solution {
public:
    int maxProductAfterCutting(int n) {
        if(n<=3) return 1*(n-1);//边界情况。
        int res =1;
        if(n % 3 == 1)  //拆成两个2.即4
        {
            res = 4;
            n = n-4;
        }
        //绳子中有2
        else if(n%3 == 2)//只能拆成一个2
        {
            res =2;
            n=n-2;
        }
        //只有3
        while(n)
        {
            res=res*3;
            n-=3;
        }
        return res;
        
    }
};

剪绳子

标签:nbsp   一个   替换   product   mes   lse   max   res   solution   

原文地址:https://www.cnblogs.com/make-big-money/p/12303033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!