题目要求只能用递归函数来实现,不能用其他数据结构(这里如果连vector都不能用的话,那就直接用定义数组了)

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void reStack(vector<int>& , int, int);

int main(){
    int N;
    cin >> N;
    vector<int> arr(N, 0);
    for(int i = 0; i < N; ++i){
        cin >> arr[i];
    }
    reStack(arr, 0, N-1);
    for(auto num : arr){
        cout << num << ' ';
    }
    /*这里因为系统不会计算你多输出空格,但是如果实际上应该考虑空格输出个数
    for(int i = 0; i < N; ++i){
    cout << num ; 
    if(i < N - 1)
    cout << ' ';
    }
    */
    return 0;
}

void reStack(vector<int>& arr, int start, int end){
    if(start >= end)
        return;
    swap(arr[start], arr[end]);
    reStack(arr, start+1, end-1);
}