首页 > 其他 > 详细

一个正整数N,拆成任意个正整数之和,怎样使这些数的乘积最大

时间:2014-03-13 21:42:51      阅读:585      评论:0      收藏:0      [点我收藏+]

网上看到了如标题所示的题目,就开始想如果用程序来算的话,那么它的算法是怎样的。

自己想了半天,第一感觉要用递归,

如先算出

当 n=1 max=1 

当 n=2 max=1

当 n=3 max=2

。。。

那么当n=k max=????

就是没有找出规律出来。 

后来感觉上是否按照数学上的某些规律来求这个算法。网上搜索之后,发现,还真是。

 

网上的答案:

1的时候是1,2的时候是1,3的时候是2,4的时候是4,5的时候是6
当n=3k,k>1的时候,最大的积是3^k
当n=3k+1, k>1的时候,最大的积是3^(k-1)*4
当n=3k+2, k>1的时候,最大的积是3^k*2 
 
感想:做程序做多了,很容易会按照程序的思维来考虑问题,这个是思维定式。
   所以我们发散思维,灵活应对,依靠其他的知识来处理某些问题。
 

一个正整数N,拆成任意个正整数之和,怎样使这些数的乘积最大,布布扣,bubuko.com

一个正整数N,拆成任意个正整数之和,怎样使这些数的乘积最大

原文:http://www.cnblogs.com/guoyongrong/p/3598616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!