求助大佬

P2669 [NOIP2015 普及组] 金币

源君不诚 @ 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;//输出一共给多少金币
}
*/

|