队列实现qq解密

By | 03月31日
Advertisement

规则是这样的:首先将第 1个数删除,紧接着将第 2 个数放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第 5 个数删除……。直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是QQ。

假设是9位的qq。

解决思路:用队列的head指向给出乱序qq的第一个元素,让tail指向qq的末尾的下一个(这样做的目的是为了当head=tail,队列为空)。当删除时,只要head++,放到末尾时,将tail++就OK。

队列:队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”。当队列中没有元素时(即 head=tail),称为空队列。因此,队列满足“先进先出”的原则。

上代码:

#include <stdio.h>
#include <stdlib.h>

typedef struct queue{
    int queueArr[100];//定义队列空间
    int head;         //队列头部
    int tail;         //队列尾部
}queue;

/*
解密qq
*/
int queueDecodeQQ ( int *queueQQ,int head,int tail ,int *desQQ )
{
    int index = 0;
    if (( NULL == queueQQ )&&( NULL == desQQ))
    {
        return -1;
    }
    //进行解密
    while( head < tail )//条件是不为空
    {
        desQQ[index] = queueQQ[head];//将删除的数保留到desQQ数组,即就是真正的qq序列
        head++;
        queueQQ[tail] = queueQQ[head];//将head放到尾部
        tail++;
        head++;
        index++;
    }
    return 0;
}

/*
主函数
*/
int main()
{
    int index = 0;
    //定义队列
    queue queueQQ;
    //定义目的qq存放数组
    int desQQ[9] = {0};
    //输入
    printf("请输入要解密的qq:");
    for ( ; index < 9; index++ )
    {
        scanf("%d",&queueQQ.queueArr[index]);
    }
    //初始化对头和队尾
    queueQQ.head = 0;
    queueQQ.tail = 9;//队列尾部应该指向实际队列的最后一个数的下一个,保证当tail = head队列为空。
    //解密
    queueDecodeQQ (queueQQ.queueArr,queueQQ.head,queueQQ.tail,desQQ);
    //输出打印
    for ( index = 0; index < 9; index++ )
    {
        printf("%d ",desQQ[index]);
    }
    //换行
    printf("\n");
    //停止程序,可以保留那个黑框框(doc命令框)便于查看
    system("pause");
    return 0;
}

Similar Posts:

  • 【隐式图搜索遍历学习】倒牛奶

    DFS: #include<iostream> #include<queue> #include<algorithm> #include<cstring> using namespace std; long ans[50], p = -1; long a, b, c; //各桶上限 bool found[50][50][50]; //搜索记录 bool isln(int C) //判断是否有重复记录 { bool in = false; for(int i

  • dijkstra算法模板(优先队列优化)

    dijkstra算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有 向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 常规的dijkstra算法复杂度较高,为O(n^2),因为要花大量时间来找当前已知的距顶点距离最小的值,所以用优先队列(值小的先出队列)来优化,可省大量时间. #include<iostream> #include<cstdio> #inclu

  • 迅雷、快车、QQ旋风链接的加密解密方式原理

    迅雷地址和快车地址的加密方式很简单,其实都是用的Base64加密方式,只不过有一点点的小改动而已. 1.迅雷 迅雷链接地址转换原理是在地址的前方和后方加入两个字母AA.ZZ,然后再进行Base64加密,再加上Thunder://这个专用链接标识,从而转换成迅雷的专用地址. 例如: 原链接为:http://www.forece.net/win7.rar 在原地址前面加"AA",后面加"ZZ"(注:不包括引号),地址变为 AAhttp://www.forece.net/

  • 迅雷 快车 QQ旋风地址解密加密

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan 在线版解密加密正式在本博运行, 欢迎试用(公告部分), 此程序仅作为学习和讨论使用, 并不作为商用, 不以赢利为目的. 开发目标 用base64来完成对迅雷thunder,快车flashget,QQ旋风的解密与加密, 以后不在找在线加密解密方法, 直接到自己的博客中完成加密解密. 执

  • QQ 聊天记录解密类 DELPHI版

    以前写的一个QQ聊天记录解密时写的,加密解密就是麻烦 如需要QQTEA单元,参见上一篇文章 代码 { /----------------------------------------------" " QQ消息解密类 | " Writeted By RYYD | " Mail:[email protected] | ----------------------------------------------/ } unit QQMSG; interface uses Act

  • qq魔法表情原理,解密及其他

    最近将qq换成了2005版的,发现里面有个魔法表情的东西挺有意思的,里面的卡通表情丰富多彩,为大家的聊天生活又添了不少情趣,但除了少部分是免费的外其他的都是收费的.开始以为是腾讯自己开发的新东西,猜想它的原理可能是腾讯自己做的透明窗体之类的东西,以前看过用bmp做不规则窗体的文章,所以我的第一直觉就是那些动画实际上是一副副bmp图片,腾讯将它们做成连续显示并加上背景音乐,同时将窗体其他部分做为不可视.可是后来我才发现,原来事情并没有我想象的那么复杂,其实这些动画说白了是一副副的flash,在网上

  • QQ飞车最难十二项技术是什么 带你解密最高端玩法

    第一项,加速抓地难度2 你应该看见过很多视频里面的高手,在起跑时都会左右摇摆,为什么呢,因为这是加速抓地的奥秘,本来抓地时是车子慢慢加速的,当摇摆时车子可以避过一些空气阻力,从而使加速度高些,加速更快,这是模拟了现实生活中的空气阻力的结果.这项技能很好掌握,稍加练习就可以了. 第二项,瞬间转角难度1 这个词对大家来说可能比较陌生,本来车开得好好的,即使漂移也要一段时间才能转过一定角度,何来瞬间呢,我想先问大家一个问题,在每次喷火时是不是都习惯性的只按上啊,可能大多数新手是这样的,每次漂移结束后都

  • [李景山php]算法系列|php 进行队列操作

    <?php /** * Created by PhpStorm. * User: ziniu * Date: 2016/9/22 * Time: 16:22 */ // php 队列 实现 /** * 队列任务背景: * php小菜跟新来的美女同事要QQ号码,作为资深美女程序员,给了小菜一串数字2,3,7,4,1,2,9,2,4 * 并且告诉了小菜解密规则: * 首先将第一个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除,并将第4个数放到这串数的末尾, * 再删除第5个数.....直

  • 加密解密技术基础、PKI及创建私有私有CA;

    OpenSSL 传输层协议:TCP传输控制协议,UDP用户数据协议,SCTP流控制传输协议 port:内核中的传输层提供的进程地址,进程向内核注册使用某端口(独占) 同一主机上的进程间通信: IPC机制 message queue(消息队列), shm,共享内存 semerphor旗语 不同主上的进程间通信: 基于TCP/IP中研发的一种机制:socket(端口) cip:port<-- --> sip:port 监听模式:LISTEN(ip:port) Web本身不具有加密解密的功能 SSL

  • 浅谈消息队列

    1.写在前面 本来一年前的时候还打算以那篇面经为契机,开始自己写博客的习惯,结果后来一拖再拖,虽然evernote里面积攒了不少东西,但是发现想整理成博客真的是太累了,毕设的时候觉得累没整理,刚到公司做mini项目觉得累没整理,后来刚进工作室熟悉环境觉得累没整理,不知不觉就一年没写博客了,囧. 为什么想起来写这样一篇文章呢?其实主要还是两周前有一个知乎问题突然火起来了,传说中的水货程序员之问.这篇知乎问题真是一个大宝库,刚一出来,海量平时在知乎上各种高调的大神(棍)和海量低调的真大神都出来冒泡,

Tags: