源君不诚 @ 2017-10-12 17:50:45
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
using namespace std;
int m,n,ans=0,i,j;
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
n-=i;
if(n>=0)
ans+=i*i;
if(n<0)
{
ans+=(n+i)*i;break;
}
}
cout<<ans;
return 0;
}
这个程序在天数减i小于零时 无法特判
by sjl40 @ 2017-10-28 22:32:03
蒟蒻表示看不懂奉上我的AC代码
/*
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
unsigned long long n,i,s,xj,p,sx;//这里类型开大一点,保险。
int main()
{
cin>>n;xj=1;sx=1;//进行上限和第一天给的金币的初始值定义。
for(i=1;i<=n;i++)
{
s+=xj;p++;if(p==sx){p=0;sx++;xj++;}//进行每天要给的金币、天数++、还有天数一到就要给的金币不一样的操作。
}
cout<<s;//输出一共给多少金币
}
*/