B2072-3rd

· · 题解

看题

“要使每个人都能拿到苹果”指苹果数量不能为0。

“每个人拿到的苹果数都不同”指数据不能重复。

“至少应该有多少个”指要使求得的值最小。

既要数据不能重复,还要使答案最小,又不能从0开始。

那就从1开始枚举到 n 即为答案。

CODE 1:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    ans+=i;//累加

    cout<<ans;//输出

    return 0;
}

但是,此题可以进一步优化。

因为本题是从1枚举到 n ,每一个数间隔是1,又知道了共有 n 个数。

所以,这道题可以用等差数列求和的公式:

S_n=\dfrac{(1+n)×n} {2}

CODE 2:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    cout<<n*(n+1)/2;//直接套公式

    return 0;
}

END.