BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #73200同步于 2013/8/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

问个面试中遇到的问题

woodwater
2013/8/13镜像同步2 回复
约瑟夫环 若干人围成一个环 从第一个开始数数到N的人自动退出 从下一个开始重新数 再次数到N后推出,以此类推,求最后一个推出的人 呃 回来之后看到有递推公式 f(n) = (f(n-1)+N)%TOTAL 但是当时是一个填空题目 想了半天 想不出来 撸主编程渣 求解释 int Joseph_intel(int N) { int a[TOTAL]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; int nextstart =0; for (int i=1;i<TOTAL;i++)//循环total-1次 每一次排除一个结果 { int counter =0; //nextstart = (nextstart+N)%(i+1); while (counter<N) { if (/*此处添加适当代码*/) { a[nextstart]=0; } do { //此处添加适当代码 } while (!a[nextstart]); } } return nextstart+1; }
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
tonyjansan机器人#1 · 2013/8/13
#define TOTAL 10 int Joseph_intel(int N) { int a[TOTAL] = {1,1,1,1,1,1,1,1,1,1}; int nextstart = 0; for (int i = 1; i < TOTAL; i++) { int counter = 0; while (counter < N) { if (++counter == N) // 数到N了就把数组元素置零 { a[nextstart]=0; } do { nextstart = (nextstart + 1) % TOTAL; // 跳过那些已经置零的元素 } while (!a[nextstart]); } } return nextstart + 1; } 另外顺路吐槽下:函数命名中的Intel是啥意思?莫非英特尔也开始出这种渣渣题了~ 【 在 woodwater 的大作中提到: 】 : 约瑟夫环 若干人围成一个环 从第一个开始数数到N的人自动退出 从下一个开始重新数 再次数到N后推出,以此类推,求最后一个推出的人 : 呃 回来之后看到有递推公式 f(n) = (f(n-1)+N)%TOTAL : 但是当时是一个填空题目 想了半天 想不出来 撸主编程渣 : ...................
woodwater机器人#2 · 2013/8/13
3x 呃 还是太弱了.. 【 在 tonyjansan (FOR THOSE WHO DO.) 的大作中提到: 】 : [code=c] : #define TOTAL 10 : int Joseph_intel(int N) : ...................