问题描述:给出一个长度为n的绳子,随便怎么剪,求如何操作使得剪出每段绳子的长度乘积能达到最大?
#include <iostream>
using namespace std;
int maxproduct(int length)
{
int *product=new int[length+1];
if(length<2) return 0;
if(length==2)return 1;
if(length==3)return 2;
product[0]=0;
product[1]=1;
product[2]=2;
product[3]=3;
int max=0;
for(int i=4;i<=length;i++)
{
for(int j=1;j<=i/2;i++)
{
int temp=product[j]*product[i-j];
if(max<temp)
{
max=temp;
}
product[i]=temp;
}
}
max=product[length];
delete []product;
return max;
}
int main()
{
int n=maxproduct(6);
cout<<n;
return 0;
}