题解 | #排序#

约瑟夫问题I

http://www.nowcoder.com/questionTerminal/11b018d042444d4d9ca4914c7b84a968

遇到一点初学者遇到的问题 原因在于网页是核心代码模式,后台已经有了main函数,你只用写个函数返回函数值就行

main.cc : 5 : 5 : error : redefinition of 'main' int main() { ^ . / solution.h:7 : 5 : note : previous definition is here int main() { ^ main.cc:10 : 9 : error : unknown type name 'Joseph' Joseph solution;

class Joseph {
  public:
    int getResult(int n, int m) {
        // write code here
        queue<int> que;
        //初始化队列,队列内的值就是编号,始终不会修改 只会出入队
        for (int i = 1; i <= n; i++) {
            que.push(i);//最开始的编号
        }
        //开始报数
        int num = 1;
        while (true) {
            int cur = que.front();
            if (m == num) {//命中m
                que.pop();
                if (que.empty()) {
                    return cur;
                }
                num = 1;
            } else { //未命中m
                num++;
                que.pop();
                que.push(cur);
            }
        }
    }
};                        
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务