1.輸入n個數字。
2.去掉第1個數,把第2個放到這些數字的末尾,
然後是去掉第3個數,把第4個放到這些數字的末尾,
以此類推,直到所有的數字都去掉。
3.去掉的數字按去掉的先後排序,就是加密後的數字 。
注:demo中初始化的數據是我小時候常玩的一個撲克牌小遊戲,
就是同一花色的13張撲克牌按demo中的排序方法,
最後就可以按順序排出來。
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv) {
//初始化數據
vector<int> ves;
ves.push_back(1);
ves.push_back(12);
ves.push_back(2);
ves.push_back(8);
ves.push_back(3);
ves.push_back(11);
ves.push_back(4);
ves.push_back(9);
ves.push_back(5);
ves.push_back(13);
ves.push_back(6);
ves.push_back(10);
ves.push_back(7);
//通過初始數據獲取集合長度和初始化數組
int num01=ves.size(),num02[num01];
//開始加密
for(int i=0,num=0;true;i++){
if((i+1)%2==1){
num02[num]=ves[i];
++num;
if(num==num01)
break;
}else{
ves.push_back(ves[i]);
}
}
//遍歷加密數組
for(int i=0;i<num01;i++){
cout<<num02[i]<<" ";
}
return 0;
}
調試截圖