面试编程题收集
1:有N个人围成一圈,第一个人从1开始报数,报到M的人出列,求最后一个出列的人, 约瑟夫环问题。
?最简单但是最难懂的方法: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;}?
?最简单但是最难懂的方法:
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;}
?