剪绳子

Posted make-big-money

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剪绳子相关的知识,希望对你有一定的参考价值。

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

以上是关于剪绳子的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode——剪绳子

剑指offer:剪绳子

面试题14:剪绳子

《剑指offer》第十四题(剪绳子)

剑指offer面试题 14. 剪绳子

剪绳子