50个人围成圈,数到3和3的倍数时出圈,求剩下的人及其原来的位置
2014-08-27 11:45
375 查看
import java.util.LinkedList; import java.util.List; /** * 50个人围成圈,数到3和3的倍数时出圈,求剩下的人及其原来的位置 * @author Joson.Liu * 2014.08.27 */ public class Circle { public static void main(String args[]){ System.out.println("剩下的人其原来位置为"+cycle(50,3)); } private 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 dataList.get(0); } }
亮点:
充分利用了取余的特性及链表特性,当然也可以用数组存储,这个自己考虑。
相关文章推荐
- 50个人围成一圈数到三和三的倍数时出圈,问剩下的人是谁?在原来的位置是多少?
- java编程题:50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁,在原来的位置是多少?
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少
- 题目:50个人围城一圈数到3和3的倍数时出圈,问剩下的人是谁?原来的位置是多少?
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
- java算法50个人围成一圈数到三和三的倍数时出圈,问剩下的人是谁?在原来的位置是多少?
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?在原来的位置是多少(简单易懂)
- 50个人围成一圈报数,遇到3的倍数,自动退出,最后剩下的人原来的位置是多少
- 50个人围成一圈数到三和三的倍数时出圈,在原来的位置是多少?
- n个人围成一圈数到m和m的倍数时出圈,问剩下的人是谁?在原来的位置是多少?
- 50个人围成一圈数到三和三的倍数时出圈,在原来的位置是多少
- 有17个人围成一圈(编号为0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。问此人原来的位置是多少号?
- 50个人,数到3和3的倍数即退出,问最后剩下谁?
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 50个人围成一圈数数,数到3的倍数时出圈,最后剩下的人是谁?
- 有10人围成圈数数,每次数到3的人退出其他人继续,问最后剩下的一个人原来的位置是多少
- 50个人围成一圈数到3和3的倍数时出圈,问剩下的人是谁?
- //有500个人坐成一圈从第一个开始报数为3时出列 再从1开始遇到3出列 依次下去 直到圈里只有一个人时 求它原来在内圈的位置
- Java实现约瑟夫环:50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号