B3687 [语言月赛202212] 数字口袋 题解

· · 题解

B3687 [语言月赛202212] 数字口袋 题解

Source & Knowledge

2022 年 12 月语言月赛,由洛谷网校入门计划/基础计划提供。

文字题解

题目大意

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

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

解析

1 开始枚举每个数字 i,如果可以装入口袋,则输出这个数字,然后将口袋的大小减去 i;如果不能装入口袋,则结束循环。

核心代码如下:

for (int i = 1; ; i++)
{
    if (n < i) break;
    cout << i << "\n";
    n = n - i;
}

视频题解

完整代码请在视频中查看。