343IntegerBreak
2016-06-10 17:27
239 查看
题目:输入一个不小于2的 正整数,要求将它分解为至少两个正整数的和,同时使分解值之积最大,输出该积。
思路:1、5 < 2*3 ; 2、欲使积最大,大于5的数都需要分解成小于5的数,即2、3、4;最可能多的分解出3,剩余的部分为2/4;5、杜绝分解出1;6、区分对待小于5的数和大于5的数。
思路:1、5 < 2*3 ; 2、欲使积最大,大于5的数都需要分解成小于5的数,即2、3、4;最可能多的分解出3,剩余的部分为2/4;5、杜绝分解出1;6、区分对待小于5的数和大于5的数。
public int integerBreak(int n) { switch(n){ case 2: return 1; case 3: return 2; case 4: return 4; default: { int res = 1; int quo = n / 3; //1 or 2 int rem = n % 3; while(quo >= 1){ res *= 3; quo--; } switch(rem){ case 0: return res; case 1: return res / 3 * 4; default: return res *2; } } } }
相关文章推荐
- [线性常微分方程][8]The Forced Harmonic Oscillator
- mysql查看表结构
- 【Android】Activity入门
- 1.COM基础概念
- mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库
- 朱子家训
- Java程序员必须掌握的8大排序算法
- SSL/TLS 协议简介与实例分析
- Eclipse导入git上的maven web项目 部署
- Android View 测量参数
- 数字,日期,时间
- K Reversed Words
- Celery教程-------------以守护进程方式运行worker
- TobHost详解
- BZOJ_2179_FFT快速傅立叶_(FFT)
- 七月算法深度学习笔记6--CNN推展案例:图像检测、NeuralStyle
- A package manager for Qt
- <OJ_Sicily>Prime Palindromes
- Git使用教程
- NYOJ(蛇形填数)