友情提示:380元/半年,儿童学编程,就上码丁实验室。
3
序列
分析:本道题通过观察寻找变化规律:
如果n为偶数:
输入:1 2 3 4 5 6
输出:6 4 2 1 3 5
如果n为奇数:
输入:1 2 3 4 5
输出:5 3 1 2 4
……
可以推出,当n为偶数时,输出的序列为:从最后一个数开始,原序列每隔一个数倒着输出,然后再从第一个数开始,顺着输出原序列剩余的几个数。当n为奇数时,输出的序列为:从最后一个数开始,原序列每隔一个数倒着输出,然后再从第二个数开始,顺着输出原序列剩余的几个数。代码如下:
#include <iostream>
using namespace std;
int a[200002];
int main(){
int n;
cin >> n;
for(int i =1;i <= n;i++){
cin >> a[i];
}
for(int i = n;i >=1; i=i-2){
cout << a[i]<<” “;
}
int j;
if(n%2==0){
j =1;
}else{
j =2;
}
for(;j <= n;j = j+2){
cout << a[j]<<” “;
}
cout << endl;
return 0;
}
转自公众号:
noip案例讲解