具名之花

· · 题解

Source and Knowledge

2025 年 2 月语言月赛,由洛谷网校提供。

考察循环结构。

文字题解

题目要求输出 n 个数,第 i 个数为 a_i,并满足:

需要注意的是,本题不是考查随机数的生成,而是需要同学们根据题目的要求,提出一种方案,能够输出符合题意的一个数列。

方案 1

L 做带余除法,假设 L 除以 nab。如果 L 是正数,那么前面的表述不存在什么问题,但当 L 为负数时,带余除法这一小学引入的概念,将出现一些歧义。

更精确的,我们将“带余除法”表述为 L=an+b,其中 0 \le b <n

一般来说,我们要求取模运算后的结果必须为正数。如果 a\bmod M 运算时,a 可能是负数,可以通过 (a % M + M) % M 计算出正确的结果。

下面是计算 a,b 的值的代码。

int b = (L % n + n) % n;
int a = (L - b) / n;

输出 ba+1n-ba。这样,输出的数的总和为 b(a+1)+a(n-b)=ab+b+an-ab=an+b=L,符合题意。

方案 2

循环 n 次,判断: