队列解密QQ号

队列解密QQ号

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

  

问题场景:

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

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

1、C语言

代码实现:

/*
* 创建人:czc
* 创建时间:2019/8/31
* 创建用途:队列解密QQ号
*/ #include<stdio.h>
int main(){
int q[]={,,,,,,,,,},head,tail; //初始化队列
// head指向队首,tail指向队尾的后一个位置
head=;
tail=; while(head<tail){
//打印队首并将队首出队
printf("%d ",q[head]);
head++; //将新队首添加到队尾
q[tail]=q[head];
tail++; //再将队首出队
head++;
}
return ;
}

结果截图:

队列解密QQ号

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号

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

上一篇:javascript mapping


下一篇:[洛谷P4389]付公主的背包