题目要求只能用递归函数来实现,不能用其他数据结构(这里如果连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); }