题解 | #整数成绩最大化#

整数成绩最大化

http://www.nowcoder.com/questionTerminal/3e74c3b36fc442db8fdce3057fb1b5b1

核心思想:一个数不断拆成3时有最大乘积。
此题纯粹考察数学思维,想得到就能解,否则可能连思路都没有。
将一个正整数拆分,使其乘机最大。当数值在4及以上时,无论值的大小都可以拆解为 3和其小于3的余数。例如:7==3+2+2;15==3+3+3+3+3;11==3+3+3+2;并且 32>5 3*3>6 注意22==4* 所以 将4作为一个分界线,当n的值大于4时,不断减去3,并且结果不断乘以3,当n值小于等于4时,再将剩余的n值相乘,即可得出正确答案。
另外,附上简单代码。

#include<stdio.h>
int main()
{
    int n;
    while (scanf("%d",&n)!=EOF)
    {
        int temp=1;
        while(n>4)
        {
            temp*=3;
            n-=3;
        }
        temp*=n;
        printf("%d\n",temp);
    }
    return 0;
}
全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务