1:有N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人, 约瑟夫环问题。
public void testTest() {
String[] people = { "1", "2", "3", "4", "5" };
int M = 10;
int length;
int m;
while ((length = people.length) != 1) {
// 比方说有5个人,数到9,就要转一轮然后继续
if (M > length) {
// 如果是整除,最后一位被出局
m = M % length == 0 ? length : M % length;
} else {// 正常情况
m = M;
}
String[] temp = new String[length - 1];
// 把m之后的人放到前面,因为m之后的重新开始从1开始,
// m-1这要考虑数组是从0开始的,而数数是从1开始的,然后数据的拷贝是从m开始的
// 比方说5个人,数到4出局,第5个人开始为1,就数组而言是标记为4开始为1,拷贝的长度为1个
System.arraycopy(people, m, temp, 0, length - m);
// 比方说5个人,4出局,第5个排到第一位,然后依次是原先的1,2,3
System.arraycopy(people, 0, temp, length - m, m - 1);
// 重新排序,重新开始
people = temp;
}
System.out.println(people[0]);
}
最简单但是最难懂的方法:
f(1,m)=0
f(n,m)=(f(n-1,m)+m)%n
public int find(int n, int m)
{
int r = 0;
for (int i = 2; i <= n; i++) {
r = (r + m) % i;
}
return r + 1;
}
分享到:
相关推荐
java面试编程题 里面包括我所收集到的各个公司的面试题,希望对大家有所帮助
IT公司笔试\linux c网络网络编程面试题收集 ,很全面的,我师兄传给我的
linux c网络网络编程面试题收集.doc
Java并发编程面试题 75题.pdf JAVA核心面试知识点整理.pdf Java垃圾收集必备手册.pdf Java虚拟机(JVM)面试题 51道.pdf SpringBoot面试题 30道.pdf Spring面试题(含答案).pdf 多线程面试59题(含答案).pdf 面试...
本资源收集了大量的Java面试题,旨在帮助读者熟悉Java编程语言以及相关的编程技术和知识点,从而在面试中更好地展现自己的能力和潜力。本资源主要包括Java基础知识、Java集合、多线程、IO操作、网络编程、数据库等...
代码与编程题.doc 华为Java笔试题.txt 单元测试、集成测试、系统测试、验收测试、回归 某公司java笔试题.(超难).txt 白盒测试.txt 软件开发工程师试题---答案.doc 软件测试.doc 软件测试面试题.txt 黑盒测试、白盒...
【一线互联网大厂Java核心面试题库】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等..
│ 代码与编程题.doc │ 应聘Java笔试时可能出现问题及其答案.doc │ 求职笔试大全.pdf │ 用户必读.txt │ 线程编程方面.doc │ └─面试题java │ Core Javaceshiti.doc │ c_c++_mianshi.txt │ j2ee面试笔试...
linuxc网络网络编程面试题收集[文].pdf
长期收集整理而成,特此生成PDF版本供大家学习使用。
linux c/网络/网络编程面试题收集| 经典实例找工作的朋友可以看一下啊
这份是传智播客的宝贝C/C++编程的面试题,大家应该知道外面的书店根本看不到全部收集的是C与C++的编程的面试题的书卖吧,而我上传的这份就是,哪怕你做C/C++已经有两三年工作经验了,这书你也值得一看,你把里面的...
搜集整理JAVA代码与编程部分的面试题,继续分享
收集整理的一些JAVA面试题关于java编程的
面试题:10道C/C++编程问题和电机问题;16个经典面试问题回答思路等等。收集很多面试题,希望对大家有帮助!
各方收集的DSP面试笔试题,包括了信号处理基本理论、DSP体系结构、C语言/汇编编程及基本数据结构,应该涵盖了一个DSP软件工程师所应该具备的基本知识~~
这里收集了很多大公司的面试算法题,很不错、很经典,在准备面试时很有参考价值。