小鱼的数字游戏

链接:https://ac.nowcoder.com/acm/contest/93963/J链接:https://ac.nowcoder.com/acm/contest/93963/J

来源:牛客网

题目描述

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字

a

i

(长度不一定,以

0

0 结束),记住了然后反着念出来(表示结束的数字

0

0 就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

输入描述:

一行内输入一串整数(小于等于1000个,范围1~100000),以 0 结束,以空格间隔。

输出描述:

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

示例1

输入

复制

325 66 77 456 34 0

输出

复制

34 456 77 66 325

#include <iostream>

#include <vector>

#include <sstream>

using namespace std;

// 递归函数,用于读取输入并存储数字

void readNumbers(vector<int>& numbers) {

int num;

cin >> num;

// 如果读取到0,递归终止

if (num == 0) {

return;

}

// 将读取到的数字添加到向量中

numbers.push_back(num);

// 递归调用,继续读取下一个数字

readNumbers(numbers);

}

// 递归函数,用于倒序输出数字

void printNumbers(const vector<int>& numbers, int index) {

// 递归终止条件:如果索引超出范围,递归终止

if (index < 0) {

return;

}

// 输出当前数字

cout << numbers[index];

// 如果不是最后一个数字,输出一个空格

if (index != 0) {

cout << " ";

}

// 递归调用,输出下一个数字

printNumbers(numbers, index - 1);

}

int main() {

vector<int> numbers;

// 调用递归函数读取输入

readNumbers(numbers);

// 调用递归函数倒序输出数字

printNumbers(numbers, numbers.size() - 1);

cout << endl;

return 0;

}

根据对ai的询问我了解到先返回的是最后输出的

返回是逐层返回所以二者顺序相反

全部评论

相关推荐

10-31 13:56
中山大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务