剪绳子,c++

剪绳子

http://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8

class Solution {
public:
    int cutRope(int number) {
        int res = 0;
        // 此处循环中的i是段的长度,等于1时指全是长度为1的段,不能等于number
        for (int i = 1; i != number; ++i){
            int a = number / i;
            int b = number % i;

            int temp = 0;
            if (b)
                temp = pow(i, a) * b;
            else
                temp = pow(i, a);

            if (temp > res)
                res = temp;
        }
        return res;
    }
};

没有用到动态规划的思想,如下考虑:和相同求积最大,必然是各分量值越相近越大,问题是分成几个分量。
1、题设绳长度为整数(且大于1),分成整数段,每一段长为整数(也大于1);
2、循环中i含义为当各段长度最为相近时每段的长度,因为有不整除,故有余数存在,因为不能一刀都不切,所以i != number。
欢迎交流指正!!!

全部评论

相关推荐

02-13 14:30
四川大学 Java
Java抽象带篮子:简历怎么写可以看看我发的帖子,你先照着优化下简历吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务