小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:
1、将a_i放入b序列的末尾
2、逆置b序列
小易需要你计算输出操作n次之后的b序列。
输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。 第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。
在一行中输出操作n次之后的b序列,以空格分割,行末无空格。
4 1 2 3 4
4 2 1 3
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } if (n % 2 == 0) { for (int i = n - 1; i >= 0; i -= 2) { System.out.print(arr[i] + " "); } for (int i = 0; i < n; i += 2) { System.out.print(arr[i] + " "); } } else { for (int i = n - 1; i >= 0; i -= 2) { System.out.print(arr[i] + " "); } for (int i = 1; i < n - 1; i += 2) { System.out.print(arr[i] + " "); } } } }
import java.util.*; public class Main{ public static void operate1(long[] arr) { if (arr == null) { return; } LinkedList<Long> listB = new LinkedList<>(); for (int i=0; i < arr.length; i++) { if (i % 2==0) { // 偶数尾插入 listB.addLast(arr[i]); } else { // 奇数头插入 listB.addFirst(arr[i]); } } if (arr.length % 2 == 1) { Collections.reverse(listB); } for (Long l : listB) { System.out.print(l + " "); } } public static void main(String[] args) { Scanner in = new Scanner(System.in); int len = in.nextInt(); long[] arr = new long[len]; for (int i=0; i < len; i++) { arr[i] = in.nextLong(); } operate1(arr); } }
#include<bits/stdc++.h> using namespace std; // int main() { int N; cin>>N; vector<int>nums; vector<int>res; bool xq=true; int j=N-1; for(int i=0;i<N;i++) { int tmp; cin>>tmp; nums.push_back(tmp); } while(res.size()<N&&j>=0) { res.push_back(nums[j]); j-=2; } if(j==-1) //偶数 奇数和偶数顺着存的开始位置不一样 { j=0; } else if(j==-2) //奇数 { j=1; } while(res.size()<N&&j<N) { res.push_back(nums[j]); j+=2; } for(int num:res) { cout<<num<<" "; } return 0; }
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int len = scan.nextInt();
int[] arr = new int[len];
int[] n = new int[len];
for(int i = 0 ; i< len;i++){
arr[i] = scan.nextInt();
}
for(int i = 0;i<len/2;i++){
n[i] = arr[len-2*i-1];
n[len-i-1] = arr[len-2*i-2];
}
if(len%2!=0){
n[len/2] = arr[0];
}
for(int i : n){
System.out.print(i+" ");
}
}
}