zoukankan      html  css  js  c++  java
  • 约瑟夫环 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--;//修正
    			}
    		}
    		
    	}
    }
    

    測试结果:


  • 相关阅读:
    xtrabackup详细用法
    CentOS国内YUM源及配置
    CentOS7系统配置国内yum源和epel源
    Zabbix的定期备份
    Zabbix的邮件告警
    石头剪刀布---组合数取模,数论
    组合数取模介绍----Lucas定理介绍
    乘法逆元
    费马小定理
    欧几里德与扩展欧几里德算法----数论
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6800274.html
Copyright © 2011-2022 走看看