13个小朋友数数的问题

来源:互联网 发布:网银软件下载 编辑:程序博客网 时间:2024/04/29 04:24

今天老大发了一个简单的算法题给我,研究一下试着谢了一下,在此和小伙伴们分享一下:

题目是:

13个小朋友围成一圈做游戏,规则是从某一个小朋友开始顺时针方向数数,谁数到3,该小朋友离开,接着下一位继续从1开始数,直到最后一位小朋友离开,求最后一个离开的小朋友他的座位号是多少?(假设第一次开始的座位号为0)

我的算法如下,小伙伴也来分享一下你的算法吧:
public Integer myGetResult() {int[] arr = new int[13];        int count =0;                int j = 0;                for (int i = 0; i < 13;) {                 if (arr[i] != -1 ) {                     j++;                  }                      if (j % 3 == 0 && arr[i] != -1) {                      arr[i] = -1;                      count++;                     if(count == 13) return i;             }                          i ++;                          if(i == 13)  i = 0;                 }        return null; }