正整数分解时的乘积最大问题

思路来自大佬博客:链接

问题描述:
设n为正整数,将n写成若干个正整数之和,使这些正整数的乘积最大。
要求:
1)这些正整数互不相同
2)这些正整数可以相同

问题分析:1)
可以手模找找规律,当 n>=5,5=2+3;6=2+4;7=3+4;8=3+5;9=2+3+4;10=2+3+5;11=2+4+5;12=3+4+5…
我们发现:
1.拆分成的数尽可能地连续
2.当有多余时从后往前依次分配给每位。考虑特殊情况,当多余的数比分解位多时(仅会多1,例如 8=2+3+(2+1) ),考虑先将多余的 1分给最后一位再去依次分配。
3.特殊处理 n<5的情况

问题分析:2)
同样手摸找找规律:4=2+2;5=2+3;6=3+3;7=3+2+2;8=3+3+2;9=3+3+3;10=3+3+2+2…
我们发现:
如果尽可能分解成3其次是2,但不能是1。
特殊处理n<4的情况
考虑任意一个数 对3取模有三种情况:
1:模为0,显然可以完全分解成 3
2:模为1,因为不能拆分成1,所以要提出一个3将其拆分成 2+2
3:模为2,直接拆分成2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值