由于平方和有公式,等差数列有公式,根据规律推得:
#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; }
由于平方和有公式,等差数列有公式,根据规律推得:
#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; }