Integer Break
来源:互联网 发布:明年今日 知乎 编辑:程序博客网 时间:2024/05/18 15:57
题目地址:https://leetcode.com/problems/integer-break/description/
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.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).
Note: You may assume that n is not less than 2 and not larger than 58.
这种题目就找规律吧,从2开始:
好像看出点什么来了,最大积基本都是拆出来以3开头的数字,像7和10这种情况,最后剩余4的时候,一般拆成两个2,而不是拆成3和1,拆成两个2也就是4,所以就不动了。
于是代码可以这么写:
public class IntegerBreak { public static int integerBreak(int n) { if (n == 2) return 1; if (n == 3) return 2; int res = 1; while (n > 4) { res *= 3; n -= 3; } return res * n; } public static void main(String[] args) { for (int i = 1; i < 58; i++) { System.out.println(i + " " + integerBreak(i)); } }}
阅读全文
0 0
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- Integer Break
- [LeetCode]Integer Break
- leetcode笔记:Integer Break
- JVM基础
- Construct 2 技(胡)术(乱)指(操)导(作)
- select
- linux虚拟机安装步骤
- 构建乘积数组
- Integer Break
- centos 安装 python3.x
- 线段树 bzoj2957 楼房重建
- jQuery获取第一个子元素
- 博客已搬家
- BZOJ1266: [AHOI2006]上学路线route
- 内存分析
- Codeforces 555C Case of Chocolate
- datastage文件入库乱码问题