1 条题解
-
0
📝 题目大意
给定整数 ,输出首项为 、末项为 、公差为 的等差数列的所有项,用空格分隔。
💡 解题思路
- 题目分析:数据范围极小(),且题目保证输入一定构成合法的等差数列(即 是 的整数倍)。只需按顺序输出即可。
- 算法推导:从 开始,每次增加 ,当 时停止。用一个
for循环即可实现。输出时需要在每两个数之间输出一个空格,但最后一个数之后不加空格——可以通过判断x + D <= B来决定是否输出空格。 - 边界与细节:
- 当 时,数列只有一项,直接输出 即可,不需要空格。
- 注意空格的控制:不要在末尾输出多余空格,否则可能导致评测格式错误。
⏱️ 复杂度分析
- 时间复杂度:,即输出项数,最坏 。
- 空间复杂度:,仅使用常数个变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int A, B, D; cin >> A >> B >> D; // 读入首项、末项、公差 for (int x = A; x <= B; x += D) { // 从 A 开始,每次加 D,直到超过 B cout << x; // 输出当前项 if (x + D <= B) { // 如果下一项仍在范围内,输出空格分隔 cout << " "; } } cout << endl; // 输出换行 return 0; }
- 1
信息
- ID
- 773
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者