leetcode 343. Integer Break #Medium
题目大意:给定一个大于1的正整数n,将n分解为至少2个正整数的和。怎样使分解所得数字之积最大,求出这个最大积
分析:先找下规律,以下分解积最大,7=2+2+3 ,8=2+3+3,9=3+3+3,10=2+2+3+3。即要尽量多分解出3,但是不能有1(2*2>3*1),代码如下:
class Solution {
public:int integerBreak(int n) {int r=1;if(n<4)return n-1;for(;n>2;n-=3,r*=3);if(n==1)r=r/3*4;else if(n==2) r*=2;return r;}
};
本文发布于:2024-02-03 00:04:12,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170688985347339.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |