zoukankan      html  css  js  c++  java
  • 数组完成约瑟夫环

    算法思路是

    1 用一个变量j标记走到了了多少步,初始为0,表示走到了第一个数。

    2、让一个指针每次都向前移动2个不为0的数,然后打印出这个数,再置这个数为0

    3、当数组的每一项都为0的时候,说明已经全部找完了。

    代码如下:

    package algorithms.chapter1;
    
    public class YueSeFuCycle {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int[] test = {1,2,3,4,5,7,8,9};
    		getOutItem(test, 2);
    
    	}
    	public static void getOutItem(int[] items, int interval){
    		int j = 0;
    		
    			//在数组全部为0,时候跳出循环,j表示一共向前跑了多少步
    			//初始化的时候j为0,j
    				while(!isEmpty(items)){
    					//寻找正好寻到2个不为0的数的位置
    					int k = 0;
    					while(true){
    						if(items[j % items.length] != 0){
    							k++;
    						}
    						if(k == 2){
    							System.out.println(items[j % items.length]);
    							items[j % items.length] = 0;
    							break;
    						}
    						j++;
    						
    					}
    					
    				}
    					
    			}
    	
    	
    	
    	
    	public static boolean isEmpty(int[] items){
    		boolean flag = true;
    		for(int i = 0; i < items.length; i++ ){
    			if(items[i] != 0){
    				flag =false;
    			}
    		}
    		return flag;
    	}
    	
    
    }
    

      

  • 相关阅读:
    课程教学网站(大三上课设)
    mybatis+servlet
    第一个struct2(Hello_World)
    servlet入门
    mybatis入门项目
    XML
    状态模式的介绍及状态机模型的函数库javascript-state-machine的用法和源码解析
    10个JavaScript难点
    markdown基本语法
    Mac OSX 平台安装 MongoDB
  • 原文地址:https://www.cnblogs.com/dongqiSilent/p/3443952.html
Copyright © 2011-2022 走看看