算法1
(神奇的不等式方法) O(sqrt(n))
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int k;
cin>>k;
int ans=0;
int n=floor(sqrt(2*k+0.25)-0.5);//解不等式n*(n+1)/2<=k 这里的n是指最后一个拿金币的完整周期
for(int i=1;i<=n;i++){
ans+=i*i;
}
ans+=(n+1)*((k-(n*(n+1))/2));//补上最后一个可能不完整的周期
cout<<ans;
}