/**
*Copyright @ 2019 Zhang Peng. All Right Reserved.
*Filename:
*Author: Zhang Peng
*Date:
*Version:
*Description:给定长度的绳子剪为n段,求最大乘积
**/
#include<iostream>
using namespace std;
int cutrope(int length)
{
int result = 0;
if (length < 2)
result = 0;
else if (length == 2)
result = 1;
else if (length == 3)
result = 2;
int * record = new int[length];
record[0] = 0;
record[1] = 1;
record[2] = 2;
record[3] = 3;
for (int i = 4; i <= length; i++)
{
int max = 0;
for (int j = 1; j <= i / 2; j++)
{
int temp = record[j] * record[i - j];
if (temp>max)
max = temp;
record[i] = max;
}
}
result = record[length];
return result;
}
int main()
{
cout << cutrope(8) << endl;
system("pause");
return 0;
}
剑指offer 面试题14:剪绳子
最新推荐文章于 2022-02-20 16:38:51 发布