首页 > 其他 > 详细

剪绳子

时间:2020-02-13 13:03:56      阅读:59      评论:0      收藏:0      [点我收藏+]

结论:选用尽量多的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;
        
    }
};

剪绳子

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!