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 都拆出来才可以
今天看扩展欧几里得 推到一半卡住 怎么都不会了 郁闷 && 暴躁