题目描述

给你一根长度为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));
    }
};

相关文章:

  • 2022-12-23
  • 2022-02-26
  • 2021-10-04
  • 2022-02-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-02
  • 2022-12-23
  • 2022-01-09
  • 2021-06-23
  • 2021-08-19
  • 2022-02-12
  • 2022-12-23
相关资源
相似解决方案