【GESP】C++一级练习 luogu-B2072, 分苹果
一级知识点循环和取余操作练习题,逻辑上需要一点小学生的小思考。
luogu-B2072
题目要求
描述
把一堆苹果分给 $n$ 个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?
输入
一个不大于 $1000$ 的正整数 $n$,代表小朋友人数。
输出
输一个整数,表示满足条件的最少苹果个数。
输入样例-1
1
8
输出样例-1
1
36
题目分析
这道题目的逻辑比较简单:
- 每个小朋友都要拿到苹果,且数量不同
- 要求最少的苹果总数
- n个小朋友,意味着需要n个不同的正整数
- 为了使总数最少,应该从1开始连续取n个数
- 比如n=8时:
- 第1个小朋友分1个
- 第2个小朋友分2个
- 第3个小朋友分3个
- …以此类推
- 第8个小朋友分8个
- 所以最终结果就是1+2+3+…+n的和
因此,我们只需要循环累加1到n的所有整数即可得到答案。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
int main() {
int n; // 定义变量n,用于存储输入的整数
cin >> n; // 从标准输入读取整数n
int ans = 0; // 初始化变量ans,用于存储累加的结果
for (int i = 1; i <= n; i++) { // 遍历从1到n的所有整数
ans += i; // 将当前整数累加到ans中
}
cout << ans; // 输出累加的结果
return 0; // 返回0,表示程序执行成功
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权