**给定⼀个正整数 n,将其拆分为⾄少两个正整数的和,并使这些整数的乘积最⼤化。 返回你可以获得的
最⼤乘积**
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 60;
int f[N]; //表示n可以拆分成整数之和且乘积最大
int main()
{
int n;
cin>>n;
f[2]=1; //数字2的最大乘积为1*1
for (int i=3;i<=n;i++)
{
for (int j=1;j<i-1;j++)
{
f[i]=max(f[i],max(f[i-j]*j,j*(i-j)));
//max(不选这个数,max(选这个数,直接凑成j*(i-j)))
}
}
cout<<f[n]<<endl;
return 0;
}