数字解密(vector,队列方式)

来源:互联网 发布:建筑cad软件下载 编辑:程序博客网 时间:2024/04/30 02:57

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

package com.imooc;
import java.util.Vector;


/*
 * vector动态数组方式
 * */
public class myListTest3 {


public static void main(String[] args) {
Vector list=new Vector(9);
Vector list2=new Vector(9);
list.add(0,6);
list.add(1,3);
list.add(2,1);
list.add(3,7);
list.add(4,5);
list.add(5,8);
list.add(6,9);
list.add(7,2);
list.add(8,4);
for(int i = 0;i < list.size();i++){ 
System.out.print(list.get(i)); 

System.out.println();
for(int j=0;j<9;j++){
Integer it=(Integer) list.remove(0);
list2.add(it);
if(list.size()==0)break;
Integer tem=(Integer)list.get(0);
for(int k=0;k<list.size()-1;k++){
list.set(k, list.get(k+1));
}

list.set(list.size()-1, tem);
// for(int i = 0;i < list.size();i++){ 
// System.out.print(list.get(i)); 
//
// System.out.println();
}
for(int i = 0;i < list2.size();i++){ 
System.out.print(list2.get(i)); 

}
}






--------------------------------------------------------------------------

队列方式,设置头和尾指针

package com.imooc;
import java.util.Scanner;


class Queue{
int[] data = new int[1000];
int head,tail;
public Queue(int head,int tail,int n){
this.head = head;
this.tail = tail;
for(int i=1;i<=n;i++){
this.data[i] = 0;
}
}
}


public class BB0102queue{


private static Queue q;
static int n;
public static void main(String[] args){
Scanner reader = new Scanner(System.in);

//读入数据
n = reader.nextInt();
q = new Queue(1,1,n);
for(int i=1;i<=n;i++){
q.data[i] = reader.nextInt();
q.tail++;
}


while(q.tail>q.head){
//打印队首并将队首出列
System.out.print(q.data[q.head] + "\t");
q.head++;

//先将队首的数放至队尾
q.data[q.tail] = q.data[q.head];
q.tail++;
//再将队首出列
q.head++;
}
}


}

0 0
原创粉丝点击