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; }调试截图
原文地址:http://blog.csdn.net/qingbowen/article/details/46361783