圈子里最后剩下的数字TopicDescription每年六一儿童节,牛克都会准备一些小礼物去探望孤儿院的孩子们,这次也是一样年。作为牛客的资深老将,HF自然是准备了一些小游戏。其中,有这样一个游戏:首先,让孩子们围成一个大圆圈。然后,他随机指定一个数字m,让编号为0的小朋友开始数数。每次喊m-1的孩子都要出来唱一首歌,然后他可以在礼盒里任意选一个礼物,不会回圈,从他的下一个孩子开始,继续0...m-1计数....如此继续....直到剩下最后一个孩子,不用表演,即可获得珍贵的《名侦探柯南》典藏版(名额有限!!^_^).请试想一下,哪个孩子会得到这份礼物?(注:孩子的个数是从0到n-1)如果没有孩子,请返回-1说明*每年六一儿童节,牛克都会准备一些小礼物去探望孤儿院的孩子们,今年也一样。作为牛客的资深老将,HF自然是准备了一些小游戏。*其中,有一个游戏是这样的:首先,让孩子们围成一个大圆圈。然后,他随机指定一个数字m,让编号为0的小朋友开始数数。*每次喊m-1的小朋友都要出去唱一首歌,然后他可以在礼盒里任意选一个礼物,不会回圈,*从他的下一个小朋友开始,继续0。..m-1数....如此继续....直到剩下最后一个孩子,无需表演,即可获得珍贵的《名侦探柯南》典藏版(名额有限!!^_^).*请大家想一想,哪个孩子会得到这份礼物?(注:孩子从0到n-1编号)*
*如果没有孩子,请返回-1*题目链接:*https://www.nowcoder.com/practice/f78a359491e64a50bce2d89cff857eb6?tpId=13&&tqId=11199&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking*/publicclassJz46{/***约瑟夫环,长度为n的解可以看做长度为n-1加上报告数字的长度m。因为是圆,所以最后需要取n的余数。**@paramn*@paramm*@return*/publicintlastRemaining_Solution(intn,intm){if(n==0){return-1;}如果(n==1){返回0;}return(lastRemaining_Solution(n-1,m)+m)%n;}publicstaticvoidmain(String[]args){Jz46jz46=newJz46();System.out.println(jz46.lastRemaining_Solution(4,6));}}【每日留言】生活中总有意想不到的温暖和无尽的希望。无论何时何地都要向前看,满怀希望就会立于不败之地。