为什么错了

P2669 [NOIP2015 普及组] 金币

wanglingyu @ 2021-03-15 20:56:42


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,jb=0,cnt,i=1;
    cin>>t;
    while(t>0)
    {
        cnt=i;
        while(cnt>0)
        {
            jb+=i;
            cnt--;
            t--;
        }
        i++;
    }
    cout<<jb;
    return 0;
}

------------

为什么我第一个样例对了,第二个却没对?

by metaphysis @ 2021-03-16 21:01:19

@wanglingyu

t 在迭代过程中可能已经为0,需要及时退出。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,jb=0,cnt,i=1;
    cin>>t;
    while(t>0)
    {
        cnt=i;
        while(cnt && t)
        {
            jb+=i;
            cnt--;
            t--;
        }
        i++;
    }
    cout<<jb;
    return 0;
}

by wanglingyu @ 2021-03-16 21:23:13

@metaphysis 谢谢哦


|