题意:
给你一个数n,判断在n之下,最大能够表示为i^3+j*(j+1)*(j+2)/6形式的数
方法:
可用枚举法,两层for循环
因为数据够小在承受范围内。
(新手,方法比较笨)
算法复杂度:O(i*j).
(其中i<54,j<96)
using namespace std;
int main()
{
int i,j,n;
int sum,max;
while(cin>>n&&n!=0)
{
max=0;
for(i=0;i<=54;i++)
for(j=0;j<=96;j++)
{
sum=i*i*i+j*(j+1)*(j+2)/6;
if(sum<=n&&sum>max) max=sum;
}
cout<<max<<endl;
}
return 0;
}