#Leetcode# 343. Integer Break

https://leetcode.com/problems/integer-break/

 

Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.

Example 1:

Input: 2
Output: 1
Explanation: 2 = 1 + 1, 1 × 1 = 1.

Example 2:

Input: 10
Output: 36
Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.

代码:

class Solution {
public:
    int integerBreak(int n) {
        if(n == 2 || n == 3) return n - 1;
        int ans = 1;
        while(n > 4) {
            ans *= 3;
            n -= 3;
        }
        return ans * n;
    }
};

  找规律 如果想乘积最大要把 3 都拆出来才可以

今天看扩展欧几里得 推到一半卡住 怎么都不会了 郁闷 && 暴躁

posted @ 2019-04-12 17:51  丧心病狂工科女  阅读(84)  评论(0编辑  收藏  举报