Blogger Information
Blog 14
fans 1
comment 1
visits 28872
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
50个人围成一圈到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少?
bingbing的博客
Original
1336 people have browsed it

实例

import java.util.List;

//50个人围成一圈到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少?
/*思路:
 * 1、首先把数据填充到数组或链表中
 * 2、用一个while循环进行出圈,直到剩下一个元素留下。
 */

public class Cycle {

	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));
		}
		//定义下标,模拟已经去掉一个元素,因此从-1开始
		int index = -1;
		//一直循环去除数据,直到剩下一个元素
		while (dataList.size() > 1) {
			index = (index + k) % dataList.size();	//得到应该出局的下标
			dataList.remove(index--);				//去除元素
		}
		return ((Integer)dataList.get(0)).intValue();	//返回它的值
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("该数字原来的位置是" + cycle(50, 3));
	}

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
LoAcer 2018-09-26 09:07:35
典型的约瑟夫环问题
1 floor
Author's latest blog post