• 啊哈算法:解密QQ号


    新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问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

  • 相关阅读:
    转:iphone 申请证书
    [C#] Window Form 事件順序
    探讨PHP获取checkbox值
    PHP判断字符串的包含
    PCCSRGB变换表
    21世纪初最有影响力的20篇计算机视觉期刊论文
    Win7 64bit下MexOpenCV的安装,Matlab和C++&OpenCV的完美结合
    Comics: do we know that we are not doing research in the wrong way?
    Deep Learning at NIPS2012
    21世纪初最有影响力的30篇计算机视觉会议论文
  • 原文地址:https://www.cnblogs.com/forwhat00/p/13213770.html
Copyright © 2020-2023  润新知