题解:洛谷 P1427 小鱼的数字游戏

【题目来源】

洛谷:P1427 小鱼的数字游戏 - 洛谷

【题目描述】

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 \(a_i\)(长度不一定,以 \(0\) 结束),记住了然后反着念出来(表示结束的数字 \(0\) 就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

【输入】

一行内输入一串整数,以 \(0\) 结束,以空格间隔。

【输出】

一行内倒着输出这一串整数,以空格间隔。

【输入样例】

3 65 23 5 34 1 30 0

【输出样例】

30 1 34 5 23 65 3

【算法标签】

《洛谷 P1427 小鱼的数字游戏》 #递归# #栈#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件(万能头文件)
using namespace std;      // 使用标准命名空间

/**
 * 主函数 - 程序入口
 * @return 程序执行状态码(0表示成功)
 */
int main()
{
    int a[105];          // 定义数组:存储输入的数字序列
    int mark = 1;        // 定义变量:数组索引标记,初始为1
    int t;               // 定义变量:临时存储输入的数字
  
    // 循环读入数据到数组中,直到输入为0
    cin >> t;            // 读取第一个数字
    while (t != 0)       // 当输入不为0时继续循环
    {
        a[mark] = t;     // 将当前数字存入数组
        mark++;          // 数组索引后移
        cin >> t;        // 读取下一个数字
    }
  
    // 倒序输出数组中的数字
    for (int i = mark - 1; i >= 1; i--) 
    {
        cout << a[i] << " ";  // 输出当前数字
    }
  
    return 0;            // 程序正常结束
}

【运行结果】

3 65 23 5 34 1 30 0
30 1 34 5 23 65 3 
posted @ 2026-02-16 15:28  团爸讲算法  阅读(7)  评论(0)    收藏  举报