P2669 金币
题目传送门
方法一:
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e6;
int k,ans;
int main()
{
//fre();
cin>>k;
for(int i=1;;i++)
{
ans+=(i*i);
k-=i;
if(k<(i+1)) {ans+=((i+1)*k); break;}
}
cout<<ans;
return 0;
}
方法二:
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e6;
int k,t=1,ans,jb=1;
int main()
{
//fre();
cin>>k;
for(int i=1;i<=k;i++)
{
t--;
ans+=jb;
if(!t) t=++jb;
}
cout<<ans<<endl;
return 0;
}