`
hotpro
  • 浏览: 21174 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

小题目 Part 1

J# 
阅读更多
  • 1.  设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到剩下一个人为止。设n个人从1. 2. 3... n编号,求最后一个人的编号。

    private int shuM(int n, int m) {
        int ret = -1;
        int j = 0;
        int i = 0;        
        int[] a = new int[n];
        
        for(i=0;i<n;i++) {
            a[i] = 1;    
        }
        

        boolean find = false;
        while(!find) {
            for (i = 0; i < n; i++) {
                if (a[i] > 0) {
                    if (ret == i) {
                        find = true;
                        break;
                    }

                    ret = i;
                    j++;
                    if (j % m == 0) {
                        a[i] = -1;

                    }
                        
                }
            }
        }
        
        return ret + 1;
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics