zoukankan      html  css  js  c++  java
  • 啊哈算法:解密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

  • 相关阅读:
    力扣算法题—048旋转图像
    力扣算法题—047全排列2
    力扣算法题—046全排列
    力扣算法题—045跳跃游戏二
    数据结构【排序】—排序算法大集合
    数据结构【查找】—B树
    第一百四十四天 how can I 坚持
    第一百四十一/二/三天 how can I 坚持
    第一百四十天 how can I坚持
    第一百三十九天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/forwhat00/p/13213770.html
Copyright © 2011-2022 走看看