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 个数。
所以,这道题可以用等差数列求和的公式:
CODE 2:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<n*(n+1)/2;//直接套公式
return 0;
}
END.