top1编程
← 返回题目
题解

输出范围内的数

1 条题解

  • 0
    @ 2026-8-5 0:22:41

    解题思路

    题目要求把 m 到 n 之间(包含 m 和 n)的所有数用空格隔开输出。注意条件 0<m<n<1000。

    做法很简单:用 for 循环让 i 从 m 走到 n(i=m; i<=n; i++),每走到一个数就输出它。因为 m、n 都包含在范围内,所以循环条件用 i<=n,千万别写成 i<n 漏掉 n。

    输出格式要注意:数之间用空格隔开,但最后一个数后面不能有多余空格。代码里用 if(i==m) 判断:第一个数(i 等于 m)直接输出,后面的数先输出一个空格再输出,这样格式最标准,也不会在行尾留下多余空格。

    验证样例:m=1,n=10,输出 1 2 3 4 5 6 7 8 9 10。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int m, n;           // m、n:输出区间的两个端点
        cin >> m >> n;      // 读入 m 和 n
        for (int i = m; i <= n; i++) {   // 从 m 输出到 n(含端点)
            if (i == m) {   // 第一个数前面不用空格
                cout << i;
            } else {        // 其余数前面先输出一个空格
                cout << " " << i;
            }
        }
        cout << endl;       // 最后换行
        return 0;
    }
    

    复杂度分析

    循环执行 n-m+1 次,即从 m 到 n 一共要输出的数的个数,时间复杂度是 O(n-m+1),简写为 O(n)。因为 n<1000,循环次数很少。空间上只用 m、n、i 几个变量,空间复杂度 O(1)。

    • 1