首页 > 其他 > 详细

队列解密QQ号

时间:2019-08-31 10:54:08      阅读:84      评论:0      收藏:0      [点我收藏+]

队列解密QQ号

本篇博客主要是《啊哈!算法》的读书笔记,这里做一下记录。

  

问题场景:

  给定一串 QQ 号,631758924,从其中解密出真实的 QQ 号。

  解密规则:首先将第一个数删除,紧接着将第二个数放到这串数的末尾,再将第三个数删除并将第四个放到这串数的末尾,再将第五个数删除......,知道剩下最后一个数,将最后一个                             数删除。按照刚才删除的顺序,将这些删除的数连在一起就是真实的 QQ  号。

 

1、C语言

代码实现:

/*
 * 创建人:czc
 * 创建时间:2019/8/31
 * 创建用途:队列解密QQ号
 */

#include<stdio.h>
int main(){
    int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail;

    //初始化队列
    // head指向队首,tail指向队尾的后一个位置
    head=1;
    tail=10;

    while(head<tail){
        //打印队首并将队首出队
        printf("%d ",q[head]);
        head++;

        //将新队首添加到队尾
        q[tail]=q[head];
        tail++;

        //再将队首出队
        head++;
    }
    return 0;
}

结果截图:

技术分享图片

 

 

 

 

2、Java

代码实现:

/*
创建人:czc
创建时间:2019/8/31
创建用途:队列解密QQ号
 */
import java.util.Scanner;
import static java.lang.System.out;
public class Queue {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int[] q=new int[102];
        int n,head,tail;

        n=scanner.nextInt();
        //初始化队列
        for(int i=0;i<n;i++){
            q[i]=scanner.nextInt();
        }
        head=0;
        tail=9;

        while(head<tail){
            out.print(q[head]+" ");
            head++;

            q[tail]=q[head];
            tail++;

            head++;
        }
    }
}

结果截图:

技术分享图片

 

 

 

 

 

吾生也有涯,而知也无涯。

 

队列解密QQ号

原文:https://www.cnblogs.com/hzauxx/p/11437960.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!