题目

从标准输入读入 n 个整数存入列表,将列表中的所有元素就地逆序排列,并输出逆序后的列表。

输入格式:第一行输入元素个数 n;第二行输入 n 个整数,以空格分隔。

输出格式:在一行中输出逆序后的数组元素,每个数字后跟空格,末尾换行。

数据范围与约定:1 ≤ n ≤ 1000。

思路与算法

1. 原地双指针交换
头尾双指针相向收缩,对称位置元素两两交换:a[i], a[j] = a[j], a[i]。

2. Python 原生支持
也可直接使用 a.reverse() 实现 O(1) 辅助空间的原地反转。

完整程序

n = int(input())

# 打印菱形上半部分(含对称中心行)
for i in range(1, n + 1):
    print(" " * (n - i) + "*" * (2 * i - 1))

# 打印菱形下半部分
for i in range(n - 1, 0, -1):
    print(" " * (n - i) + "*" * (2 * i - 1))

运行示例

输入:

5
1 2 3 4 5

输出:

5 4 3 2 1