• 约瑟夫环 java实现


    问题:

    N个人从1到N编号。围城一圈,从1開始报数, 数到X时,将X的编号输出,并将那个人踢出,
    下一个从1再開始报数,直到全部人都出去

    思路:

    就是计数。移除,没有太深的思想,直接上代码:

    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    /**
     * N个人从1到N编号,围城一圈,
     * 从1開始报数, 数到X时,将X的编号输出,并将那个人踢出,
     * 下一个从1再開始报数,直到全部人都出去
     * @author anjl
     *
     */
    public class My_JosephCircle {
    	
    	public static void main(String[] args) {
    		List alist = new ArrayList();
    		
    		System.out.println("请输入约瑟夫环  中 总个数数:");
    		Scanner sca = new Scanner(System.in);
    		int N = sca.nextInt();
    		// 提示输入要出圈的数值
    		System.out.println("请输入要出圈的数值:");
    		int X = sca.nextInt();
    		System.out.println("按出圈的次序输出序号:");
    		
    		for(int i=0 ;i<N;i++){
    			alist.add(i+1);
    		}
    		
    		int i=-1;
    		int countX=0;
    		while(alist.size()!=0){
    			++i;
    			if(i== alist.size()){
    				i=0;
    			}
    			++countX;
    			if(countX==X){//输出
    				System.out.print(alist.get(i)+ " ");
    				alist.remove(i);
    				countX=0;
    				i--;//修正
    			}
    		}
    		
    	}
    }
    

    測试结果:


  • 相关阅读:
    macOS 上配置 Lua
    Oracle.ManagedDataAccess.dll
    offer
    Costura.Fody
    日志系统
    实战框架ABP
    什么是算法?
    HTTP状态码->HTTP Status Code
    How to untar a TAR file using Apache Commons
    python实践3:cursor() — 数据库连接操作
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6800274.html
Copyright © 2020-2023  润新知