A364.逆序输出
2025-08-31 12:42:31
发布于:江苏
0阅读
0回复
0点赞
- 用数组做
#include <cstdio>
using namespace std;
int n;
int a[1005];
int main() {
scanf("%d", &n);
for (int i=1; i<=n; i++)
scanf("%d", a+i);//正着输入
for (int i=n; i>=1; i--)
printf("%d ", a[i]);//倒着输出
return 0;
}
- 用vector做
#include <cstdio>
#include <vector>
using namespace std;
int n;
vector<int> a;
int main() {
scanf("%d", &n);
for (int i=1; i<=n; i++) {
int x; scanf("%d", &x);
a.emplace_back(x);//正着输入
}
for (int i=1; i<=n; i++) {
printf("%d ", a.at(n-i));
a.pop_back();//倒着输出
}
return 0;
}
- 用递归做
#include <cstdio>
using namespace std;
int n;
int a[1005];
//x:处理第x个元素
void fun(int x) {
if (x>n) return;
scanf("%d", a+x);//递归输入
fun(x+1);
printf("%d ", a[x]);//回溯输出
}
int main() {
scanf("%d", &n);
fun(1);
return 0;
}
- 用栈做
#include <cstdio>
#include <stack>
using namespace std;
int n;
stack<int> a;
int main() {
scanf("%d", &n);
for (int i=1; i<=n; i++) {
int x; scanf("%d", &x);
a.push(x);
}
while (!a.empty()) {
printf("%d ", a.top());
a.pop();
}
return 0;
}
时间复杂度 。
这里空空如也
有帮助,赞一个