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;
    }
  • 相关阅读:
    hdu 14004
    hdu 1850 基础尼姆博奕
    hdu 1847 sg函数
    hdu 2177
    hdu 1527
    hdu 2897
    hdu 2516 取石子游戏
    hdu 1525 Euclid's Game
    hdu 2063
    hdu 1281 棋盘游戏
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2945839.html
Copyright © 2011-2022 走看看