文章

【GESP】C++一级练习 luogu-B2072, 分苹果

一级知识点循环和取余操作练习题,逻辑上需要一点小学生的小思考。

luogu-B2072

题目要求

描述

把一堆苹果分给 $n$ 个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?

输入

一个不大于 $1000$ 的正整数 $n$,代表小朋友人数。

输出

输一个整数,表示满足条件的最少苹果个数。

输入样例-1

1
8

输出样例-1

1
36

题目分析

这道题目的逻辑比较简单:

  1. 每个小朋友都要拿到苹果,且数量不同
  2. 要求最少的苹果总数
  3. n个小朋友,意味着需要n个不同的正整数
  4. 为了使总数最少,应该从1开始连续取n个数
  5. 比如n=8时:
    • 第1个小朋友分1个
    • 第2个小朋友分2个
    • 第3个小朋友分3个
    • …以此类推
    • 第8个小朋友分8个
  6. 所以最终结果就是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 进行授权