新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的。
所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则。规则是这样的:首先将第1个数删除,紧接着将第2个数放到
这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。
按照刚才删除的顺序,把这些删除的数连在一起就是小哈的QQ啦。现在你来帮帮小哼吧。小哈给小哼加密过的一串数是
"6 3 1 7 5 8 9 2 4”。
#include<iostream>
using namespace std;
int arrlist[1000]={6,3,1,7,5,8,9,2,4};
int ans[1000],ansnum=0;
void show(int *arr,int num){//输出数组
for(int i=0;i<num;i++)
cout<<arr[i]<<" ";
}
void f(int *arr,int num,int is=1){
int tarr[1000],tnum=0;
for(int i=0;i<num;i+=2){
ans[ansnum++]=arr[i+1-is];
if(i+1==num){//如果数组长度为奇数,中途退出,并记录
is=1-is;break;
}
tarr[tnum++]=arr[i+is];//切换记录的值的位置
}
show(tarr,tnum);cout<<endl;
if(tnum>1)//如果长度在1以上继续
f(tarr,tnum,is);
else if(tnum==1)//当输入数组长度只有1时,直接记录
ans[ansnum++]=tarr[0];
}
int main(){
show(arrlist,9);cout<<endl;
f(arrlist,9);
cout<<endl;
show(ans,ansnum);
cout<<endl;
return 0;
}
————————————————
版权声明:本文为CSDN博主「LSFAN0213」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LSFAN0213/article/details/81745933