把自然数N分解成若干个互不相同的正整数,使乘积最大

//把自然数N分解成若干个互不相同的正整数,使乘积最大;
/**
题意挺晦涩的,就是说要维持这个会议召开需要满足几个条件,而要会议召开最久需要这个条件尽可能久的维持
接着就需要了将整数N分解任意个不同的整数,使这些整数的乘积最大
将N分解为N=a1+a2+a3+..+ak
可以归纳出这么一些规律
1.a1>1 如果a1=1,那么将a1加到ak上,必然使得到的这个乘积大于原来的乘积
2.2>=a[i+1]-a[i]>=1,因为如果出现>2,可以将a[i+1],a[i]改为a[i+1]-1,a[i]+1,使得到的乘积更大
3.最多只有一个i,使得a[i+1]-a[i]=2
反证法,假设i

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        int sum =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值