zoukankan      html  css  js  c++  java
  • 数组小练习

     //500个人手拉手围一圈,数3退1,直到还剩一个人,找出最后一个人的位置

    //500个人手拉手围一圈,数3退1,直到还剩一个人,找出最后一个人的位置
    
    //初始化数组
    
    public class Count3Quit2 {
    	public static void main(String[] args) {
    		boolean [] arr = new boolean[500];
    		for(int i = 0;i<arr.length;i++) {
    			arr[i] = true;
    		}
    		
    		int CountNum = 0;
    		int index = 0;
    		int leftCount = arr.length;
    		
    		while(leftCount > 1) {
    			if(arr[index]==true) {
    				CountNum++;
    				if(CountNum==3) {
    					CountNum = 0;
    					arr[index] = false;
    					leftCount--;
    					
    				}
    				
    			}
    			index++;
    			
    			if(index == arr.length) {
    				index = 0;
    			}
    		}
    		for(int i = 0;i<arr.length;i++) {
    			if(arr[i] == true ) {
    				System.out.print(i);
    			}
    			
    		}
    		
    
    		
    	}
    }
    

     面向对象写法

    //500个人手拉手围一圈,数3退1,直到还剩一个人,找出最后一个人的位置
    public class Count3Quit3 {
    	public static void main(String[] args) {
    		KidCircle kc = new KidCircle(500);
    		int countNum = 0;
    		Kid k = kc.first;
    		while(kc.count>1) {
    			countNum++;
    			if(countNum == 3) {
    				countNum = 0;
    				kc.delete(k);
    			}
    			k = k.right;
    		}
    		
    		System.out.println(kc.first.id);
    			
    			
    		
    		
    		
    		
    		
    	}
    }
    
    class Kid {
    	int id;
    	Kid left;
    	Kid right;
    }
    
    class KidCircle {
    	int count =0;
    	Kid first,last;
    	
    	
    	KidCircle(int n) {
    		for(int i = 0; i<n;i++) {
    			add(); 
    		}
    	}
    	
    	void add() {
    		Kid k = new Kid();
    		k.id = count;
    		if(count<=0) {
    			first = k;
    			last = k;
    			k.left = k;
    			k.right = k;
    		} else {
    			last.right = k;
    			k.left = last;
    			k.right = first;
    			first.left = k;
    			last = k;
    		}
    		count++;
    	}
    	
    	void delete(Kid k) {
    		if(count <= 0) {
    			return;
    		}	else if (count == 1) {
    			first = last = null;
    		}	else {
    			k.left.right = k.right;
    			k.right.left = k.left;
    			
    			if(k == first) {
    				first = k.right;
    				
    			}	else if(k == last){
    				last = k.left;
    			}
    		}
    		count --;
    	}
    	
    }
    
  • 相关阅读:
    tp5更改入口文件到根目录的方法分享
    Linux安装JBOSS
    JBOSS和WebLogic区别
    面向对象编程的思维方式
    Struts+Spring+Hibernate整合入门详解
    DB2 UDB V8.1 管理
    oracle与DB2的一些架构
    oracle和DB2的差异
    JDK和JRE的区别
    Linux安装weblogic
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11308987.html
Copyright © 2011-2022 走看看