• 约瑟夫环问题


         约瑟夫环问题:50个人围成一圈,数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少?

    思路例如以下:

    1)首先,把数据填充到数组或链表中。

    2)用一个while循环进行出圈。直到仅仅剩下一个元素留下。

    代码例如以下:

    package cn.wuhan.unit7;
    import java.util.*;
    public class YueSeFu {
    	
    	public static int cycle(int total,int k){
    		List<Integer> dataList = new LinkedList<Integer>();//创建一个链表
    		for(int i=0;i<total;i++) //加入数据成员
    			dataList.add(new Integer(i+1));
    		int index=-1;
    		//循环
    		while(dataList.size()>1){
    			index  = (index+k)%dataList.size();//以(index+k)对size()取余
    			dataList.remove(index--);
    		}
    		return ((Integer)dataList.get(0).intValue());//返回它的值
    	}
    	
    	public static void main(String[] args) {
    		System.out.println("该人原来的位置是: "+cycle(50,3));
    
    	}
    
    }
    


    效果例如以下:

        

  • 相关阅读:
    SDK安装教程
    appscan下载
    app测试-兼容性测试与云测试技术
    app测试之耗电量测试
    App测试1-App测试概述
    app测试2--monkey稳定性测试
    app测试1--常用adb命令
    常用dos命令
    jmeter(二)脚本录制
    jmeter基础介绍
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6929125.html
Copyright © 2020-2023  润新知