A - [开天辟地-2008]_梦回2008

本文探讨了2008年一数学竞赛题目,利用均值不等式和导数知识,分析了如何将给定数值进行最优划分以获得最大乘积。通过算法实现,展示了求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • A - [开天辟地-2008]_梦回2008  
  • 利用均值不等式,可以知道当每一个数都相等的时候,才具有最大值,所以实际上就是将这个数均分, 假设分为n份,那么它们的乘积就是(k/n)^n,其中k为这几个数的和。利用导数知识,可以算出其极值点。 所以当分成尽量多最接近e的3时是最优的,当k%3=1的时候,要把最后的1和一个3合并成4是最优的。 
  • #include <cstring>
    #include <cstdio>
    #include <cstdlib>
     
     
    using namespace std;
     
    const int INF = 1e9+7;
     
    long long f(int x)
    {
        if(x<=4)
            return x;
        else
            return f(x-3) * 3;
    }
     
    int main()
    {
        int x;
        while(~scanf("%d",&x))
        {
            if(!x)
                break;
            printf("%lld\n",f(x));
     
        }
        return 0;
    }

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值