zoukankan      html  css  js  c++  java
  • 约瑟夫环问题


    引用:http://www.cppblog.com/guyuecanhui/articles/76443.html

    问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后一个出列人的编号。

    代码:

    #include <stdio.h>
    
    int josephus(int n, int m, int start)
    {
        int k = 1;
        for(int i=2; i<=n; i++)
        k = (k+m-1)%i + 1;
        return (k+start-1) % n;
    }
    
    int main(void)
    {
        printf("%d\n", josephus(6, 3, 1));
        return 0;
    }
  • 相关阅读:
    选择排序
    java面试题08
    java面试题07
    java面试题06
    java面试题05
    oop.1
    4
    3
    Struts1中actionform和action属于MVC哪一层
    mysql查询时间段的所有数据
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2945839.html
Copyright © 2011-2022 走看看