一个很简单的做法
金币
http://www.nowcoder.com/questionTerminal/8f71f5670e6a45118d24d13868a2da9e
由于平方和有公式,等差数列有公式,根据规律推得:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n;
cin>>n;
int a=1;
while(a*(a+1)/2<=n)
a++;
a--;
cout<<a*(a+1)*(2*a+1)/6+(n-(a+1)*a/2)*(a+1)<<endl;
return 0;
}
