zoukankan      html  css  js  c++  java
  • 队列解密QQ号

    队列解密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++;
            }
        }
    }

    结果截图:

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

  • 相关阅读:
    20170809--JS操作Select备忘
    20160711--C# 委托的三种调用示例(同步调用 异步调用 异步回调)【转载】
    C# 内存建表备忘
    富文本编辑器 CKeditor 配置使用
    20160520—JS打分控件
    20160513--js 弹出窗口带有iframe控件 备忘
    chart 简单应用
    mvc 简单整理
    ObjectDatasourse 的绑定及显示
    GridView 详述
  • 原文地址:https://www.cnblogs.com/hzauxx/p/11437960.html
Copyright © 2011-2022 走看看