zoukankan      html  css  js  c++  java
  • 剑指67:剪绳子

    题目描述

    给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。

    输入描述:

    输入一个数n,意义见题面。(2 <= n <= 60)

    输出描述:

    输出答案。
    示例1

    输入

    复制
    8

    输出

    复制
    18

    class Solution {
    public:
        int cutRope(int number) {
            if (number <2)
                return 0;
            if (number ==2)
                return 1;
            if (number==3)
                return 2;
         int timesOf3=number/3;
            if (number -timesOf3*3 ==1)
                timesOf3--;
            int timesOf2=(number-timesOf3*3)/2;
            
            return (int) (pow(3,timesOf3))*(int) (pow(2,timesOf2));
        }
    };

  • 相关阅读:
    树状数组和线段树
    N皇后问题(函数式编程与过程式)
    单例模式
    BitSet
    蓄水池抽样问题
    关于动态规划的一些感想
    53最大子序和
    5最长回文子串
    139单词拆分
    91.解码方法
  • 原文地址:https://www.cnblogs.com/hrnn/p/13423017.html
Copyright © 2011-2022 走看看