OneCoder Avatar
OneCodercoderli.com · 958 篇博文
二级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++二级练习 luogu-b3687, [语言月赛202212] 数字口袋

📅 2025-01-24·✍️ OneCoder·计算中...·⏱️ 3 分钟
#GESP#C++#多重循环

GESP二级练习,循环分支嵌套,难度★✮☆☆☆。

luogu-B3687 [语言月赛202212] 数字口袋

题目要求

题目描述

小 A 有一个口袋,里面可以装整数。他从 11 开始,按从小到大的顺序,依次将每个整数装入口袋。

但是口袋是有限的,大小为 nn,这就是说,口袋里所有的数字的和不能够超过 nn

输入格式

输入只有一行一个整数,表示整数 nn

输出格式

输出若干行,每行一个整数,按从小到大的顺序输出口袋里的数字。

样例输入 #1

CONSOLE 1 行
15

样例输出 #1

CONSOLE 5 行
1
2
3
4
5

样例输入 #2

CONSOLE 1 行
9

样例输出 #2

CONSOLE 3 行
1
2
3

数据规模与约定

  • 对于 40%40\% 的数据,n103n\le 10^3
  • 对于 100%100\% 的数据,1n1091\le n \le 10^9

题目分析

我们可以使用一个循环来模拟这个过程。我们从1开始,每次将当前的数字加到答案中,直到答案大于n为止。在每次循环中,我们输出当前的数字,然后更新答案。

示例代码

C++ 15 行
#include <iostream>
using namespace std;
int main() {
    int n; // 输入的整数
    cin >> n; // 从输入流中读取整数
    int ans = 0; // 初始化答案
    for (int i = 1;; i++) { // 从1开始的无限循环
        if (ans + i > n) { // 如果当前答案加上i超过n,则退出循环
            break;
        }
        cout << i << endl; // 输出当前数
        ans += i; // 更新答案
    }
    return 0;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

读者讨论与留言

0 条讨论
✨ 支持点击留言直接回复 · Markdown 引用格式
💬 还没有读者留言,快来成为第一个讨论者吧!